函数想改变全局变量需要使用 global
a=1
def func():
global a
a+=1
func()
print(a) //2 不适用global会报错
局部变量改变 nonlocal 找上层中里它最近一层的局部变量
def func2():
a=1
def func3():
nonlocal a //只会找局部变量,全局的不找
a+=1
func3()
print(a) // 2
func2()
闭包函数:只要是闭包,一定是嵌套函数,且内部函数要调用外部函数的变量就是闭包
def outer ():
a=1
def inner():
print(a) //调用外部函数的变量
inner()
outer()
-----------------------------------------------------------------------------------------------------闭包常见的用法
def outer ():
a=1
def inner():
print(a) //调用外部函数的变量
return inner
inn = outer()
inn()
延长了变量的生存周期,节省内存,资源!!!!!!!