【发布时间】:2013-11-18 11:52:59
【问题描述】:
我的代码如下。
def test():
print num1
print num
num += 10
if __name__ == '__main__':
num = 0
num1 = 3
test()
执行上述 python 代码时,我得到以下输出。
3
Traceback (most recent call last):
File "<stdin>", line 3, in <module>
File "<stdin>", line 2, in test
UnboundLocalError: local variable 'num' referenced before assignment
我不知道为什么特别是 num 在测试方法中不可用。这对我来说很奇怪,我之前还没有遇到过。
注意:我使用的是 python 2.7。
【问题讨论】:
-
假设你缩进正确,这段代码可以工作。请再次检查您是否显示了引发此错误的确切代码,您可能在某处有错字。
-
@delnan 我在上次编辑的地方使用了 num 变量。希望它在代码中出错。你能看一下上面的代码吗?
-
UnboundLocalError in Python 的可能重复项
-
看,现在很简单。如果您从一开始就包含了正确的代码(甚至只是异常消息),那么您会早一个小时得到答案;-)
-
酷,您的编辑让我投了反对票,因为我的回答不再有效。
标签: python python-2.7 scope