在奇怪的情况下赋值前引用的局部变量

local variable referenced before assignment in strange condition

我有一些代码从开源数据库获取输入,然后 returns 基于某些表格的报告。我本可以发誓昨天这段代码工作正常,但是当我今天启动它时:

 
Traceback (most recent call last):
  File "C:\Users\whicaso1\Downloads\eclipse-standard-luna-R-win32-x86_64\eclipse\plugins\org.python.pydev_3.6.0.201406232321\pysrc\pydevd.py", line 1845, in 
    debugger.run(setup['file'], None, None)
  File "C:\Users\whicaso1\Downloads\eclipse-standard-luna-R-win32-x86_64\eclipse\plugins\org.python.pydev_3.6.0.201406232321\pysrc\pydevd.py", line 1373, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:\Users\whicaso1\workspace\Status based chilli list\CreateChiliLog.py", line 29, in 
    CreateChiliLog()
  File "C:\Users\whicaso1\workspace\Status based chilli list\CreateChiliLog.py", line 15, in CreateChiliLog
    for chili in chili_database.getChilis(status):
  File "C:\Users\whicaso1\workspace\Status based chilli list\ChiliFunctions.py", line 99, in getChilis
    connection_chili.rollback()
UnboundLocalError: local variable 'connection_chili' referenced before assignment

现在,我不是白痴,我检查过我是否在赋值之前确实引用了变量 "connection_chili",但看起来错误发生了 while 赋值。 (这里是失败的代码片段,错误出现在 connection_chili 变量被分配给 mysqldb 数据库对象的那一行。)

 
def getChilis(self, status):
        try:
            connection_chili = MySQLdb.connect(self.host_, self.user_, self.password_, self.database_)
            cursor = connection_chili.cursor()
            query = "SELECT id FROM issues WHERE status_id = %i" % status
            cursor.execute(query)
            connection_chili.commit()
            chilis = cursor.fetchall()
            cursor.close()
            return chilis</p>

<pre><code>    except Exception, e:
        connection_chili.rollback()
        print "ERROR: " + str(e)

我的代码有问题吗,或者我的 python 编译器发生了什么奇怪的事情?

刚刚在 cmd 中对照 python 检查了我的代码,运行 没问题。所以我猜它可能是日食的一些奇怪问题。不管怎样,这已经不是编程题了,所以我要关闭它了