
说明
1、nonlocal声明的变量不是局部变量或全局变量,而是外部嵌套函数中的变量。
2、nonlocal定义后的变量只会在调用的子函数中发挥作用。
实例
x = 1 def func(): nonlocal x x =2 print(x) func() print(x) 结果代码报错,SyntaxError: no binding for nonlocal 'x' found
为什么我只是把global换 成了nonlocal,却报错了?因为nonlocal是用于函数中的函数。
x = 1
def func():
    x = 2
    def subfunc():
        nonlocal x
        x = x + 1
        print('subfunc内打印的值:%d' % x)
        return x
    print('func内打印的值:%d' % x)
    return subfunc
func()
print('func外打印的值:%d' % x)
 
结果是:
func内打印的值:2
func外打印的值:1
nonlocal关键字既没有改变全局变量x=1的值,也没有改变局部变量x=2的值。这就是指nonlocal声明的变量不是局部变量,也不是全局变量。
以上就是python中nonlocal关键字的介绍,希望对大家有所帮助。更多Python学习指路:python基础教程
本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。
神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试
 
                     
                


