UnboundLocalError -Solutions
UnboundLocalError: local variable 'logs' referenced before assignment
在运行程序时出现了上述的错误:
logs
是我用来记录查询记录的变量,在main()
中对其初始化logs = ''
; 对其的使用是在get_input()
函数中 - 成功查询后储存结果,或者显示历史查询记录。
在stackoverflow中查询了相关问题
get_input()
函数,将logs += result
语句看做是个assignment (尽管实际上是对一个已经存在变量的update/reassign)。Python interpreter 判断logs不是全局变量,判断本身是正确的,但是因为函数内部并没有申明本地变量,调用时便出错。
一个简单的解决方式是在get_input()
内部将logs
申明为全局变量global logs
. 申明后Python interpreter判断出logs
是全局变量,调用时会在global scope范围内查找变量。
global
申明不是很好的Python习惯,会造成混淆容易出错。
尽管已经在main()