global 用来声明全局变量。
nonlocal 用来声明外层的局部变量, 如下所示:
In [14]:
# 定义两个全局变量
A = 111
B = 222
def foo():
# 定义两个局部变量
A = 333
B = 444
def bar():
global A # 使用全局变量 A = 111
nonlocal B # 使用外层变量 B = 444
A += 555
B += 444
print('In bar: A = %s, B = %s' % (A, B))
return A, B
return bar
bar = foo()
bar()
print('In global: A = %s, B = %s' % (A, B))