變數範圍(Scope): 指的是變數宣告、定義後,能夠使用,或者說能夠看得到的區域範圍,分為靜態範圍(Static scope)與動態範圍
動態範圍: 在執行時期才會決定範圍,看得是程式呼叫的狀態,在使用變數時,會從最近呼叫自己的函式開始找起。以堆疊(Stack)為基礎,每次呼叫另一個函式時,範圍會被Push到堆疊,執行變數時就會從堆疊開始找起。
語句參考環境: 所有可以使用的變數名稱的集合。
靜態範圍的語句參考環境: 區域變數 + 看得到的全域變數
動態範圍的語句參考環境: 區域變數 + 執行中的函式中的變數
變數範圍指的是變數在程式中可以被訪問的區域。Python 主要使用靜態範圍(Lexical Scope),也稱為詞法範圍。然而,動態範圍(Dynamic Scope)在某些程式語言中存在,理解其概念有助於更好地理解 Python 的範圍規則。
Python 使用 LEGB(Local, Enclosing, Global, Built-in)規則來決定變數的範圍:
語句參考環境指的是在程式執行過程中,語句可以訪問和引用的變量及其值的集合。在 Python 中,這與變數範圍密切相關,因為語句的參考環境由變數範圍決定。