什么是闭包?
闭包就是一个个内嵌函数+内嵌函数里面引用了外部变量+返回这个内嵌函数(一般是这样)
为什么使用闭包?
有点类似与函数模板?。。
举一个实际的例子:
class people:
name = ''
has = []
def __init__(self, name, has):
self.name = name
self.has = has
def chidongxi(people):
def gochi():
#还可做各种操作 - -
print( people.name + '吃' + ','.join(people.has) )
return gochi
p1 = people('why',['apple','banana','li'])
p2 = people('wj',['shi','haha','nishuone'])
z1 = chidongxi(p1)
z2 = chidongxi(p2)
z1()
z2()
这里有一个人的类,有名字name和他拥有的吃的has
吃东西这个方法,就是一个简单的闭包,他可以根据不同的人,拥有的不同的东西,进行吃的操作
其中,people 这个变量就是外部变量,gochishi()是内嵌函数(它使用了people)
我们看一下结果
why吃apple,banana,li
wj吃shi,haha,nishuone
好处:
1.封装
2.实现代码复用
参考:
[1]. python-闭包详解
[2]. [Python小记] 通俗的理解闭包 闭包能帮我们做什么?
如果我的文章帮到了你,请客官打个赏支持一下吧~