global 和 nonlocal 的区别?

global 和 nonlocal 的区别?

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))
In bar:    A = 666, B = 888
In global: A = 666, B = 222

猜你喜欢

转载自blog.csdn.net/cats_miao/article/details/80844305
今日推荐