a = 10 print(1) a = 20当然,此代码会引发UnboundLocalError但是为什么在print(a)行中会出现这个例外呢?
如果解释器逐行执行代码(就像我想的那样),那么当到达print(a)时,它不会知道有什么问题;它只会认为a引用了全局变量。因此,解释器似乎预先读取了整个函数,以确定是否使用a进行赋值。这
显然,根据游戏的最终结果,这些变量中只有一个是True。出于这个原因,我在一次尝试中创建了它们,除了: pass。现在,我只想打印这些变量中的一个(例如,胜利,因为胜利是基于对曲棍球比赛结果的刮取而变成真实的),但是当我搜索打印True变量时,我会得到错误UnboundLocalError: local variable、平局、输家之间的真变量。
所以当我开始面对这个问题时,我正在写一些条件句。谁能给我解释一下为什么这段代码不能执行?(我简化了语义,使其更容易重现)b = 2
if a < b:它会引发一个UnboundLocalError: local这似乎发生在if块中赋值的变量,所以我将函数更改为: if a < b:然后消息是UnboundLocalError<
我正在用Python2.7编写一个Tkinter应用程序,但我遇到了一些以前没有遇到过的麻烦。据我所知,似乎Tkinter模块是为我的类中的__init__函数导入的,而不是为其他函数导入的。File "myApp.py", line 26, in BuildFramesUnboundLocalErr