1. 程式人生 > >Python 閉包函式

Python 閉包函式

目錄

一,建立閉包

二,判斷閉包

三,python 中怎麼建立閉包


閉包(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,閉包函式必須返回內嵌函式