Python 入门之 闭包
1、闭包
(1)在嵌套函数内使用(非本层变量)和非全局变量就是闭包
(2)使用__ closure__ 判断是不是闭包
def func():
a = 1
def foo():
print(a)
print(foo.__closure__) # 判断是不是闭包 (<cell at 0x000002B5BF55EC18: int object at 0x00000000762E8070>,)
func()
def wrapper():
a = 1
def inner():
print(a)
return inner
ret = wrapper()
a = 2
def wrapper():
def inner():
print(a)
return inner
ret = wrapper()
def wrapper(a,b):
def inner():
print(a)
print(b)
inner()
print(inner.__closure__)
a = 1
b = 2
wrapper(11,22)
(3)闭包的作用
<1> 保存局部信息不被销毁,保护数据的安全性
<2> 在装饰器中使用
(4)闭包的应用
<1> 可以保存一些非全局变量但是不易被销毁、改变的数据。
<2>在 装饰器中
天之涯,海之角,吾与money天荒地老。