python閉包,看不懂請揍我
阿新 • • 發佈:2018-12-09
什麼是閉包?
閉包就是一個個內嵌函式+內嵌函式裡面引用了外部變數+返回這個內嵌函式(一般是這樣)
為什麼使用閉包?
有點類似與函式模板?。。
舉一個實際的例子:
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小記] 通俗的理解閉包 閉包能幫我們做什麼?
如果我的文章幫到了你,請客官打個賞支援一下吧~