python命名空間列印 python的命名空間

2021-10-11 13:10:27 字數 736 閱讀 8718

定義:

名稱到物件的對映。命名空間是乙個字典的實現,鍵為變數名,值是變數對應的值。各個命名空間是對立沒有關係的,乙個命名空間中不能有重名,但是不同的命名空間可以重名且沒有任何影響。

分類:python程式執行期間會有2個或3個活動的命名空間(函式呼叫時有3個,函式呼叫結束後2個)。按照變數定義的位置,可以劃分為以下3類:

local:區域性命名空間,每個函式所擁有的命名空間,記錄了函式中定義的所有變數,包含函式的入參、內部定義的區域性變數。

global:全域性命名空間,每個模組載入執行時建立的,記錄了模組中定義的變數,包括模組中定義的函式、類、其他匯入的模組、模組級的變數和常量。

built-in:python自帶的內建命名空間,任何模組均可以訪問,放著內建的函式和異常。

生命週期:

local(區域性命名空間):在函式被呼叫時才被建立,但函式返回結果或丟擲異常時被刪除。(每乙個遞迴函式都擁有自己的命名空間)。

global(全域性命名空間):在模組被載入時建立,通常一直保留知道python直譯器退出。

built-in(內建命名空間):在python直譯器啟動時建立,一直保留直到直譯器退出。

各命名空間建立順序:python直譯器啟動 -> 建立內建命名空間 -> 載入模組 -> 建立全域性命名空間 -> 函式被呼叫 -> 建立區域性命名空間

各命名空間銷毀順序:函式呼叫結束 -> 銷毀函式對應的區域性命名空間 -> python虛擬機器(直譯器)退出 -> 銷毀全域性命名空間 ->銷毀內建命名空間

python命名空間列印 Python 命名空間

命名空間 在python直譯器開始執行 之後,就會在記憶體中開闢乙個空間,每當遇到乙個變數的時候,就 把變數名和值之間的關係記錄下來,但是當遇到函式定義的時候,直譯器只是把函式名讀入內 存,表示這個函式存在了 至於函式內部的變數和邏輯,直譯器是不關心的.也就是說一開始 的時候函式只是載入進來,僅此而...

Python 命名空間

本文介紹python中命名空間中的legb原則。legb含 釋 l local function 函式內的名字空間,包括區域性變數和形參 e enclosing function locals 外部巢狀函式的名字空間 例如closure g global module 函式定義所在模組 檔案 的名字...

python 命名空間

作用域 第五章說過,將輸入字元作為命令放在作用域字典裡 作用域,每個函式都有乙個作用域,就是 字典,字典名字為函式名,鍵為變數,鍵值為變數對應的賦值。函式的作用域為區域性作用域 在函式內部訪問全域性變數,且只是讀取變數的值不重新繫結變數。這樣引用易出錯誤。慎重使用全域性變數 defcombine p...