Python之我對閉包的理解2

2021-10-06 22:31:56 字數 816 閱讀 8550

'''

1. 儲存返回返回閉包時的狀態(外層函式值的狀態)

'''def

func

(a,b)

: c =

10def

inner_func()

:# 建立乙個內部函式就佔乙個位址,扔出來的是不會被**的

s = a+b+c

print

('相加之後的結果是:'

,s)print

(locals()

)return inner_func

# 呼叫func

# func(6,9)()

ifunc = func(6,

9)# ifunc變數就是inner_func ifunc = inner_func

ifunc1 = func(2,

8)ifunc2 = func(1,

9)print

(ifunc)

print

(ifunc1)

print

(ifunc2)

ifunc1(

)ifunc(

)ifunc2(

)'''

當呼叫func(6,9)---》a=6,b=9--->inner_func()內部函式中-->返回內部函式

(此時返回的內部函式已經記錄此時的a和b的值,所所以不會受到a,b改變的影響)

再次呼叫func(2,8)--》a=2,b=8---》儲存在本次的inner_func()函式中,---》返回

的時候返回的就是儲存2,8內部函式

'''

Python之我對閉包理解1

閉包 針對函式而言,是在在函式中提出的概念 條件 1.外部函式中定義了內部函式 即有函式巢狀 2.外部函式有返回值 3.外部函式返回的值是 內部函式名 即函式入口位址 為方便記憶不搞混淆,我們這裡可以說返回的是函式名 4.內部函式呼叫 引用 了外部函式的變數 不引用不叫嚴格的閉包 格式 def 外部...

閉包學習之我的理解

學習資料 url demo toggle 如下例,內部函式引用外部函式的變數 這裡是變數i 該內部函式即形成閉包,閉 是指內部函式中的變數對於外部不可見 而內部函式可以引用外部變數 思考 照此理解,我們應該經常在不知不覺中使用著閉包,只要我們在客戶端環境下定義乙個函式,而 該函式引用了全域性變數,那...

對閉包的理解

閉包是什麼 答 閉包就是能夠讀取其他函式內部變數的函式。閉包函式生效的兩個條件 1 必須先定義乙個匿名函式 2 必須要執行一次匿名函式生成閉包函式 匿名函式 匿名函式 demo1 function name 呼叫匿名函式 echo demo1 張無忌 匿名函式也有自己的作用域,除了傳參,還有什麼方式...