大家好,我是楊數Tos,這是《從零基礎到大神》系列課程的第55篇文章,第三階段的課程:Python進階知識:Python進階知識:詳細講解Python中的函數(八)====> 函數的嵌套調用之閉包函數。
函數是非常重要的內容,在這裡,我會用10篇左右的文章詳細講解Python中函數定義與使用的規則。
閱讀提醒:建議小白先看一遍:【計算機基礎知識】和【Python基礎知識】課程,否則你不一定聽得懂!
一、什麼是閉包函數
1、什麼是閉包函數
閉:就是封閉,指函數在定義在另一個函數內的函數,即一個函數是另一個函數的子函數;
包:就是包裹,指該函數包含對外層函數作用域的引用,即在該函數內又做了對上層函數的引用(非全局作用域)。
閉包函數是我們對前面所學的函數知識的綜合運用;學會閉包函數,本質上我們並沒有學習新的知識點。
閉包函數=名稱空間與作用域+函數嵌套+函數對象;這三者的綜合應用就是閉包函數。
舉例說明:
在上面的例子中,無論在任何地方調用f這個函數,變量x的值永遠都是10;這裡充分說明了:函數中名字的查找關係是以函數定義階段為準,無論在哪調用函數,都必須返回到函數定義階段判斷名字之間的關係。【重要】
2、定義閉包函數
閉包函數=名稱空間與作用域+函數嵌套+函數對象;這三者的綜合應用就是閉包函數。
閉包函數的本質就是裝飾器;也可以說,裝飾器的本質就是閉包函數。
def fun():
x = 111
def fun2(): #函數定義在fun內,即閉
print(x) # 函數內包含對外層函數作用域的引用,即包。
閉包函數,我們應該比較多的場景在於裝飾器、以及一些公共方法上面;後面會詳細講關於裝飾器的使用。
以上是本期內容,如果有表達不對的內容,歡迎您的留言、斧正,我們一起天天向上。
感謝您的閱讀,您的三連【關注、點讚、收藏】就是對我最大的支持,謝謝!
本文由楊數Tos原創,歡迎關注,帶你一起長知識。