我定义了一个全局变量
x=100
此代码可以正常运行
def fn():
x=1
z=x+1
print z #2
但这不能正常工作
def f2():
z=x+1
print z
x=1
Traceback (most recent call last):
File "<pyshell#83>", line 1, in <module>
fn()
File "<pyshell#82>", line 2, in fn
z=x+1
UnboundLocalError: local variable 'x' referenced before assignment
我不确定为什么会这样。
编译器是否尝试在情况2中将x解释为局部的,但x尚未初始化?答案 0 :(得分:0)
您可以使用global
关键字引入并修改x
的全局值。
喜欢
x = 100
def fn():
x = 1
z = x + 1
print z
def f2():
global x
z = x + 1
print z # -> 101
x = 1
f2()
这也可能有帮助-https://www.programiz.com/python-programming/global-keyword