將 LEGB 規則用於 Python 範圍 Python 使用所謂的 LEGB 規則解析名稱,該規則以名稱的 Python 範圍命名。 LEGB 中的字母代表本地、封閉、全局和內置。以下是對這些術語含義的快速概述: 局部(或函數)作用域是任何 Python 函數或 lambda 表達式的代碼塊或主體。此 Python 作用域包含您在函數內定義的名稱。這些名稱僅在函數代碼中可見。它是在函數調用時創建的,而不是在函數定義時創建的,因此您將擁有與函數調用一樣多的不同局部作用域。即使多次或遞歸調用同一個函數也是如此。每次調用都會創建一個新的本地作用域。 封閉(或非局部)作用域是一個特殊的作用域,它只存在於嵌套函數中。如果局部作用域是內部或嵌套函數,則封閉作用域是外部或封閉函數的作用域。此範圍包含您在封閉函數中定義的名稱。封閉作用域中的名稱從內部和封閉函數的代碼中可見。 全局(或模塊)作用域是 Python 程序、腳本或模塊中最頂層的作用域。此 Python 範圍包含您在程序或模塊的頂層定義的所有名稱。此 Python 範圍內的名稱在代碼中的任何地方都可見。 內置作用域是一個特殊的 Python 作用域,它在您運行腳本或打開交互式會話時創建或加載。此範圍包含諸如關鍵字、函數、異常和其他 Python 內置屬性等名稱。此 Python 範圍內的名稱也可從代碼中的任何位置獲得。當您運行程序或腳本時,它會由 Python 自動加載。