【发布时间】:2015-08-11 21:58:05
【问题描述】:
我对 Python 的变量作用域系统如何工作感到有些困惑。假设我有这样的情况:
a = 10
def test():
print(a)
然后一切都按我的预期进行。 Python先查找局部变量a,找不到再查找全局变量。
但是,在这样的情况下:
a = 10
def test():
print(a)
a += 1
print(a)
Python 抛出 UnboundLocalError 异常,显然来自第 3 行 (print(a))。对我来说,至少这一行似乎没有任何改变,而且我不明白为什么会有例外。
【问题讨论】:
-
发帖前请正确搜索
-
@therealprashant 说回答这个问题的人。
-
@vaultah 有时确实会遇到一些需要回答的固执的人:)
-
@therealprashant 他们在欺骗中得到了回答,这是识别它的全部意义。如果你有更好的答案,把它写在那里,这样所有指向它的骗子都会受益。如果没有,请坐在你的手上。
-
@jonrsharpe 明白了。感谢您的反馈。我会确保以后不会发生这种情况
标签: python function variables scope