简单理解python中的nonlocal和global关键字

Def

nonlocal: 在一个子函数中声明当前变量不是局部变量,也就是说,可以在当前子函数中使用其父函数定义的变量,并且可以作修改。且在子函数中修改之后在父函数中的变量也会变成修改之后的变量。
eg:

x = 1
def func():
	nonlocal x
	x = 2
	return x
print(func())
print(x)

得到结果

2
2

global: 在一个子函数中定义的变量是全局变量,可以在当前子函数的外面使用这个定义的global变量。

def func():
	global x
	x = 2
func()
print(x)

得到结果

2

Summary

再总结一下,nonlocal是从当前函数外拿变量修改,global是把当前函数拿到函数外,从而函数外可以使用并且修改。
nonlocal: 函数内 <- 函数外
global: 函数内 -> 函数外

参考:
Python nonlocal Keyword (w3schools.com)

Python global Keyword (w3schools.com)

你可能感兴趣的:(python,python,后端)