python中對閉包的理解(1)

2021-09-01 11:51:07 字數 892 閱讀 2982

今天聊下python中閉包的用法,首先它是在函式內再定義乙個函式,內部定義的函式可以引用外部函式的引數和區域性變數,在呼叫外部函式時返回的是內部函式,但是不會立馬執行內部函式的程式體,需要單獨呼叫內部函式才會去執行。下面的程式就是閉包

首先正常定義乙個求和函式:

def sum(*args):

s = 0

for i in args:

s += i

return s

print(sum(1,2,3,4,5,6))

執行結果:

在呼叫sum()函式時就會返回計算結果。

現在把這個函式定義在另乙個函式的內部:

def lazy_sum(*args):

def sum():

s = 0

for i in args:

s += i

return s

return sum

內部函式引用了外部函式的引數args,外部函式最後返回的是內部函式sum,在呼叫lazy_sum()函式時,我們看下返回的是什麼

f1 = lazy_sum(1,0,9,8,7,6,5)

print(f1)

執行結果:

.sum at 0x000000a05e2f01e0>

可以看到外部函式最後返回的是乙個函式,引數和變數儲存在該函式中,此時並沒有執行函式體,需要在呼叫f1才會執行函式,因為每次返回都是返回乙個函式儲存演算法和相關資料,所以每次呼叫lazy_sum()返回的函式是不同的,即使填入的引數一樣。呼叫函式f1的結果。

print(f1())
執行結果:

閉包的簡單概念就介紹到這,下次再繼續**

Python之我對閉包理解1

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

對閉包的理解

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

理解Python中的閉包

理解python中的閉包 1.定義 閉包是函式式程式設計的乙個重要的語法結構,函式式程式設計是一種程式設計正規化 而面向過程程式設計和物件導向程式設計也都是程式設計正規化 在面向過程程式設計中,我們見到過函式 function 在物件導向程式設計中,我們見過物件 object 函式和物件的根本目的是...