1. 程式人生 > >閉包函式知識點

閉包函式知識點

閉包函式

1、內部函式包含對外部作用域而非全劇作用域名字的引用,該內部函式稱為閉包函式。
2、判斷閉包函式的方法__closure__
輸出的__closure__是一個cell物件表示是閉包函式,輸出的是None 表示不是閉包函式。

一、建立一個閉包函式

def outter():
    name = 'zs'
    def inner():
        # print(name)  # 引用外層函式的變數。
        print('ZZZZ')
        print(inner.__closure__)  # 使用__closuer__內建屬性來判斷是否是一個閉包
    return inner  # 返回內建函式的地址。
f = outter()
f()  # 等價於 inner()

二、使用外層函式的變數也是閉包。

def outter(age):
    name = 'zs'
    def inner():
        print(age)
    print(inner.__closure__)
    return inner
f = outter(10)
f()  # 等價於 inner()