Python高階--閉包

星空28發表於2024-04-29

閉包作用:可以用來在一個函式與一組私有變數之間建立關聯關係,在給定函式被多次呼叫的過程中,這些私有變數能夠保持其永續性(儲存執行環境與變數的狀態)
閉包的特徵:1.必須要有函式的巢狀,而且外層函式必須返回內層函式。外層函式相當於給內層函式提供了一個包裝起來的執行環境,在這個包裝的執行環境裡面,內層函式可完全自己掌握自由變數的值。2.內層函式一定要用到外層函式中定義的自由變數。

=============================

func_list = []
for i in range(3):
def myfunc(a):
return i + a
func_list.append(myfunc)

for f in func_list:
print(f(1)) # 返回的是3,3,3

===========================

func_list = []
for i in range(3):
def deco(i):
def myfunc(a):
return i + a
return myfunc
func_list.append(deco(i))

for f in func_list:
print(f(1)) # 返回的是1,2,3

相關文章