test.py
x = 10; # global variable
def func1():
print(x); # prints 10
def func2()
x = x + 1; # IDE shows error: "Unresolved reference of x(RHS of expression)
def func3()
global x;
x = x + 1; # This works
当x具有全局范围时,为什么func2()不允许我修改其值,尽管在func1()中可以访问它。以及为什么在func3()的情况下需要明确提及“ global”关键字?
答案 0 :(得分:1)
您可以访问全局变量,但要对其进行修改,应明确声明该变量是全局变量。
我认为这个link会有用。
其背后的原因是,当您说x = x + 1时,python认为您想要一个局部变量x,然后当到达x + 1表达式时,python会发现该局部变量x被提及但未分配任何变量值,所以会感到困惑。