【轉】Python關鍵語法-閉包:函式中的函式用法例項
阿新 • • 發佈:2018-11-22
本文例項講述了Python閉包的用法。分享給大家供大家參考,具體如下:
Python函式中也可以定義函式,也就是閉包。跟js中的閉包概念其實差不多,舉個Python中閉包的例子。
def make_adder(addend): def adder(augend): return augend + addend return adder p = make_adder(23) q = make_adder(44) print(p(100)) print(q(100))
執行結果是:123和144.
為什麼。Python中一切皆物件,執行p(100),其中p是make_adder(23)這個物件,也就是addend這個引數是23,你又傳入了一個100,也就是augend引數是100,兩者相加123並返回。
有沒有發現make_adder這個函式,裡面定義了一個閉包函式,但是make_adder返回的return卻是裡面的這個閉包函式名,這就是閉包函式的特徵。
再看一個Python閉包的例子:
def hellocounter (name): count=[0] def counter(): count[0]+=1 print('Hello,',name,',',count[0],' access!') return counter hello = hellocounter('ma6174') hello() hello() hello()
執行結果:
tantengdeMacBook-Pro:learn-python tanteng$ python3 closure.py Hello, ma6174 , 1 access! Hello, ma6174 , 2 access! Hello, ma6174 , 3 access!
使用閉包實現了計數器的功能,這也是閉包的一個特點,返回的值儲存在了記憶體中,所以可以實現計數功能。
轉自:小談部落格 http://www.tantengvip.com/2015/07/python-closure/
希望本文所述對大家Python程式設計有所幫助。
以上是網際網路使用者為您的的內容,在阿里雲內部有更多的關於Python函式中的函式(閉包)用法例項_python的內容,歡迎繼續使用右上角搜尋按鈕進行搜尋python、閉包、函式中的函式、以便於您獲取更多的相關資訊。