UnboundLocalError -Solutions

UnboundLocalError: local variable 'logs' referenced before assignment

在运行程序时出现了上述的错误:

logs是我用来记录查询记录的变量,在main()中对其初始化logs = ''; 对其的使用是在get_input()函数中 - 成功查询后储存结果,或者显示历史查询记录。

在stackoverflow中查询了相关问题

explanation by orokusaki

get_input()函数,将logs += result 语句看做是个assignment (尽管实际上是对一个已经存在变量的update/reassign)。Python interpreter 判断logs不是全局变量,判断本身是正确的,但是因为函数内部并没有申明本地变量,调用时便出错。

一个简单的解决方式是在get_input()内部将logs申明为全局变量global logs. 申明后Python interpreter判断出logs是全局变量,调用时会在global scope范围内查找变量。

global申明不是很好的Python习惯,会造成混淆容易出错。

尽管已经在main()

results matching ""

    No results matching ""