anancds / document

MIT License
1 stars 0 forks source link

python global nonlocal #89

Open anancds opened 4 years ago

anancds commented 4 years ago

一、如果内部函数有引用外部函数的同名变量或者全局变量,并且对这个变量有修改.那么python会认为它是一个局部变量。

二、声明全局变量,如果在局部要对全局变量修改,需要在局部也要先声明该全局变量:

三、 在局部如果不声明全局变量,并且不修改全局变量。则可以正常使用全局变量:

四、nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量

nonlocal 适用于在局部函数中调用另一个局部函数的局部变量, 把最内层的局部变量设置成外层局部或者其它局部可用,但不可在全局使用

简而言之,nonlocal的作用:

在一个函数中调用另一个函数的私有化变量

五、global 当在全局调用,即非函数体内,在局部之外调用的变量

六、函数1申明的全局变量q若要在函数2中修改,必须在函数2中再次申明全局变量q,表示修改外部的全局变量q

anancds commented 4 years ago

https://zhuanlan.zhihu.com/p/144947494