Python 閉包函式
阿新 • • 發佈:2019-01-11
目錄
閉包(closure)是函數語言程式設計的重要的語法結構,Python也支援這一特性,下面就開始介紹Python中的閉包。
內部函式包含對外部作用域而非全劇作用域名字的引用,該內部函式稱為閉包函式。
一,建立閉包
def outter(): name = 'zs' def inner(): print(name) # 引用外層函式的變數 return inner() # 返回內建函式的地址 f = outter() # 將inner的記憶體地址返回給了 f 變數
二,判斷閉包
判斷閉包的方法是_closure_
輸出的_closure_是一個cell物件表示是閉包函式,輸出的是None則不是閉包函式。
def outter(): name = 'zs' def inner(): print(name) # 引用外層函式的變數 print(inner.__closure__) # (<cell at 0x0000000002148468: str object at 0x00000000021CC3E8>,) return inner() # 返回內建函式的地址 f = outter() # 將inner的記憶體地址返回給了 f 變數
三,python 中怎麼建立閉包
在Python中建立一個閉包可以歸結為以下三點:
1,閉包函式必須有內嵌函式
2,內嵌函式需要引用該巢狀函式上一級namespace中的變數
3,閉包函式必須返回內嵌函式