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

更新於:2020-12-28

2K+ 次檢視

啟動你的職業生涯

透過完成課程獲得認證

開始
廣告