nonlocal

描述

   nonlocal 关键字可以用来修改局部变量

   nonloca l只在闭包里面生效作用域就是闭包里面的,外函数内函数都影响,但是闭包外面不影响。

示例代码:

x = 100 

def outer():
    x = 10
    print("外部函数的变量x的值是:%s" % x)

    def inner():
        nonlocal x  # 声明使用局部变量
        x = 20  # 修改局部变量的值
        print("内部函数的变量x的值是:%s" % x)

    return inner


outer()()  # 相当调用完outer()又调用inner()
print("全局x的值是:%s " %x)
View Code

运行结果:

原文地址:https://www.cnblogs.com/yujiemeigui/p/14612119.html