命名空间与作用域

    nonlocal关键字

# 1.外部必须有这个变量
# 2.在内部函数声明nonlocal变量之前不能再出现同名变量
# 3.内部修改这个变量如果想在外部有这个变量的最近一层函数中生效
def f1():
    a = 1
    def f12():
            def f2():
                nonlocal a
                a = 2
            f2()
    f12()
    print('a in f1 : ',a)

f1()

global 关键字

a = 10
def func():
    global a
    a = 20

print(a)
func()
print(a)

globals and locals 方法

def func():
    a = 12
    b = 20
    print(locals())
    print(globals())

func()

 

posted @ 2018-12-31 04:25  梦想召唤未来  阅读(65)  评论(0编辑  收藏  举报