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)
运行结果: