Python中的名稱空間和作用域
在Python中,我們處理變數、函式、庫和模組等。你可能想要使用的變數名可能已經存在,例如另一個變數名、另一個函式名或另一個方法名。在這種情況下,我們需要了解Python程式如何管理所有這些名稱。這就是名稱空間的概念。
以下是三種名稱空間類別:
區域性名稱空間:程式宣告的所有函式和變數的名稱都儲存在此名稱空間中。此名稱空間在程式執行期間存在。
全域性名稱空間:此名稱空間包含Python程式中使用的模組中包含的所有函式和其他變數的名稱。它包含區域性名稱空間中的所有名稱。
內建名稱空間:這是最高級別的名稱空間,其中包含Python直譯器載入為程式設計環境時可用的預設名稱。它包含全域性名稱空間,而全域性名稱空間又包含區域性名稱空間。
Python中的作用域
名稱空間有一個可用時間,這也被稱為作用域。作用域還取決於變數或物件所在的程式碼區域。在下面的程式中,你可以看到在內迴圈中宣告的變數可用於外迴圈,反之則不行。還要注意外函式的名稱如何也成為全域性變數的一部分。
示例
prog_var = 'Hello' def outer_func(): outer_var = 'x' def inner_func(): inner_var = 'y' print(dir(), ' Local Variable in Inner function') inner_func() print(dir(), 'Local variables in outer function') outer_func() print(dir(), 'Global variables ')
執行上述程式碼將給出以下結果:
輸出
['inner_var'] Local Variable in Inner function ['inner_func', 'outer_var'] Local variables in outer function ['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'outer_func', 'prog_var'] Global variables
廣告