成人免费观看网欧美片-成人免费观看视频-成人免费观看男女羞羞视频-成人免费观看的视频黄页-成人免费高清视频-成人免费福利片在线观看

千鋒教育-做有情懷、有良心、有品質的職業教育機構

手機站
千鋒教育

千鋒學習站 | 隨時隨地免費學

千鋒教育

掃一掃進入千鋒手機站

領取全套視頻
千鋒教育

關注千鋒學習站小程序
隨時隨地免費學習課程

當前位置:首頁  >  技術干貨  > python閉包函數怎么用

python閉包函數怎么用

來源:千鋒教育
發布人:xqq
時間: 2023-11-10 12:47:25 1699591645

python閉包函數:

閉包,又稱閉包函數或者閉合函數,類似于嵌套函數,不同之處在于,閉包中外部函數返回的不是一個具體的值,而是一個函數。一般情況下,返回的函數會賦值給一個變量,這個變量可以在后面被繼續執行調用。

例如,計算一個數的n次冪,用閉包可以寫成下面的代碼:

#閉包函數,其中exponent稱為自由變量

defnth_power(exponent):

defexponent_of(base):

returnbase**exponent

returnexponent_of#返回值是exponent_of函數

square=nth_power(2)#計算一個數的平方

cube=nth_power(3)#計算一個數的立方

print(square(2))#計算2的平方

print(cube(2))#計算2的立方

運行結果為:

4

8

在上面程序中,外部函數nth_power()的返回值是函數exponent_of(),而不是一個具體的數值。

需要注意的是,在執行完square=nth_power(2)和cube=nth_power(3)后,外部函數nth_power()的參數exponent會和內部函數exponent_of一起賦值給squre和cube,這樣在之后調用square(2)或者cube(2)時,程序就能順利地輸出結果,而不會報錯說參數exponent沒有定義。

看到這里,讀者可能會問,為什么要閉包呢?上面的程序,完全可以寫成下面的形式:

defnth_power_rewrite(base,exponent):

returnbase**exponent

上面程序確實可以實現相同的功能,不過使用閉包,可以讓程序變得更簡潔易讀。設想一下,比如需要計算很多個數的平方,那么讀者覺得寫成下面哪一種形式更好呢?

#不使用閉包

res1=nth_power_rewrite(base1,2)

res2=nth_power_rewrite(base2,2)

res3=nth_power_rewrite(base3,2)

#使用閉包

square=nth_power(2)

res1=square(base1)

res2=square(base2)

res3=square(base3)

顯然第二種方式表達更為簡潔,在每次調用函數時,都可以少輸入一個參數。

其次,和縮減嵌套函數的優點類似,函數開頭需要做一些額外工作,當需要多次調用該函數時,如果將那些額外工作的代碼放在外部函數,就可以減少多次調用導致的不必要開銷,提高程序的運行效率。

以上內容為大家介紹了python閉包函數怎么用,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。

tags: python培訓
聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。
10年以上業內強師集結,手把手帶你蛻變精英
請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通
免費領取
今日已有369人領取成功
劉同學 138****2860 剛剛成功領取
王同學 131****2015 剛剛成功領取
張同學 133****4652 剛剛成功領取
李同學 135****8607 剛剛成功領取
楊同學 132****5667 剛剛成功領取
岳同學 134****6652 剛剛成功領取
梁同學 157****2950 剛剛成功領取
劉同學 189****1015 剛剛成功領取
張同學 155****4678 剛剛成功領取
鄒同學 139****2907 剛剛成功領取
董同學 138****2867 剛剛成功領取
周同學 136****3602 剛剛成功領取
相關推薦HOT