函數嵌套:Python中如何在函數里定義另一個函數?
Python函數嵌套指在外部函數內部定義內部函數,可隱藏功能或實現複雜邏輯。其調用方式有兩種:一是在外部函數內直接調用內部函數;二是讓外部函數返回內部函數對象,供外部調用。 內部函數作用域僅限於外部函數,可訪問外部函數的參數或局部變量,但外部函數無法訪問內部函數的局部變量,這是嵌套核心特性。 函數嵌套常見用途包括實現閉包(內部函數記住外部函數狀態)和裝飾器(爲函數添加額外功能,如計時、日誌)。它能實現代碼模塊化封裝、保存臨時狀態,是Python高級特性(如閉包、裝飾器)的基礎。初學者可從嵌套調用和作用域規則入手,逐步掌握其在開發中的應用。
閱讀全文作用域小課堂:Python變量的局部與全局作用域
Python中的作用域決定變量的訪問範圍,主要分爲局部和全局兩種。 **局部作用域**:函數內部定義的變量,僅在該函數內有效(如`age = 18`)。若函數內定義與全局變量同名變量,會優先當作局部變量處理(如`x = 200`覆蓋全局`x=100`,但外部仍爲100)。 **全局作用域**:函數外定義的變量,整個程序可訪問(如`name = "小明"`)。直接訪問無問題,但函數內若要修改全局變量,需用`global`聲明(如`global score`),否則Python會誤將其視爲局部變量(如`score=90`不修改原全局80)。 **嵌套函數**:內層函數可訪問外層函數局部變量,修改時需用`nonlocal`聲明(如`nonlocal outer_var`)。 總結規則:局部僅函數內,全局全程序;修改全局用`global`,修改外層局部用`nonlocal`。合理使用作用域可避免變量衝突,提升代碼可讀性。
閱讀全文