[英]Python Local and Global Variables
def spam():
print(eggs)
eggs = 13
eggs = 12
spam()
这给出了错误:
UnboundLocalError: local variable 'eggs' referenced before assignment
但这不是:
def spam():
print(eggs)
eggs = 12
spam()
为什么?
在第一个例子中,当你做eggs = 13
,函数试图在它的范围内找到定义,假设它是一个局部变量,并且因为在函数中没有定义这样的变量,所以local variable 'eggs' referenced before assignment.
抛出异常。
在第二个例子中,由于没有这样的赋值,所以从全局范围中取出eggs
,即eggs=12
,因此这里不会抛出这样的异常
要解决此问题,您需要在函数内分配局部变量eggs
。 这里只引用和更改局部变量eggs
,全局变量eggs
是相同的。
In [40]: def spam():
...: eggs = 12
...: print(eggs)
...: eggs = 13
...: print(eggs)
...:
...: eggs = 12
...: spam()
...: print(eggs)
12
13
12
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.