说明
1、nonlocal声明的变量不是局部变量或全局变量,而是外部嵌套函数中的变量。
2、nonlocal定义后的变量只会在调用的子函数中发挥作用。
实例
x=1 deffunc(): nonlocalx x=2 print(x) func() print(x) 结果代码报错了,SyntaxError:nobindingfornonlocal'x'found
为什么我只是把global换成global? 成为nonlocal,却报错了?因为nonlocal是函数中使用的函数。
x=1 deffunc(): x=2 defsubfunc(): nonlocalx x=x+1 print('打印在subfunc中的值:%d'%x) returnx print('func打印值:%d'%x) returnsubfunc 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电脑。