您需要
global声明:
def foo(): global G if G is None: G = 1
在Python中, 您分配的 变量默认情况下成为局部变量。您需要使用
global将它们声明为全局变量。另一方面,您 引用但未分配的
变量不会自动成为局部变量。这些变量指的是封闭范围内最接近的变量。
Python
3.x引入了
nonlocal类似于的语句
global,但是将变量绑定到了最接近的范围。例如:
def foo(): x = 5 def bar(): nonlocal x x = x * 2 bar() return x
调用时此函数返回10。



