之前我在 matlab 的笔记里介绍过一次 global 的用法
这次在 python 中介绍下 global 和 nanlacal 的区别
global 函数:
在函数中修改全局变量
>>> I = 'ABC'
>>> def fun():
global I
I = '123'
print(I)
>>> fun()
>>> print(I)
%输出为
123
123
运行 fun() 函数时,global 函数将全局变量 I = ‘ABC’ 修改为 I = ‘123’,并覆盖原先的全局变量 I 的值。
nonlocal 函数:
在函数中的内部函数中,修改其外部函数中定义的局部变量
先看一份例子,稍后我们使用nonlocal来修改
>>> I = '东北大鹌鹑'
>>> def fun():
I = 'PDD'
def function():
I = '周淑怡'
print(I)
function()
print(I)
>>> fun()
>>> print(I)
%输出是%
周淑怡
PDD
东北大鹌鹑
而我现在把 ’PDD‘ 也换成 ’周淑怡‘ ,就要使用nonlocal函数了
>>> I = '东北大鹌鹑'
>>> def fun():
I = 'PDD'
def function():
nonlocal I
I = '周淑怡'
print(I)
function()
print(I)
>>> fun()
>>> print(I)
%输出为
周淑怡
周淑怡
东北大鹌鹑
PDD:你怎么把我给整没了呢???
哈哈哈哈,皮一下
从上面的例子可以看到:
我们一般在某函数的内部函数中使用 nonlocal 函数来修改这个函数的局部变量,而不会改变整个代码的全局变量,nonlocal 用途还算比较广泛的。