python 中的作用域和命名空間

2021-08-21 17:08:13 字數 572 閱讀 1690

命名空間,存放名字的地方,準確的說命名空間是存放名字與變數值繫結關係的地方

內建命名空間:python自帶的名字,在python直譯器啟動時產生,存放一些python內建的名字

全域性命名空間:在執行檔案時,存放檔案級別定義的名字

區域性命名空間:在執行檔案的過程中,如果呼叫了函式,則會產生該函式的命名空間,用來存放該函式內定義的名字,該名字在函式呼叫時生效,呼叫結束後失效

載入順序:內建命名空間------>全域性命名空間----->區域性命名空間

名字的查詢順序:區域性命名空間------>全域性命名空間----->內建命名空間

python 的作用域(scope)決定了我們在程式中能否直接使用命名空間中的名稱,直接訪問的意思是指不需要在名稱前新增命名空間的字首。對於 python 來說,至少存在以下三類的作用域。

函式作用域,包括了函式內的區域性名稱

模組作用域,包括了模組內的全域性名稱

內建作用域,包括了內建名稱

當在函式內部使用乙個名稱時,為了查詢出該名稱所引用的物件,python 直譯器先在函式命名空間查詢,接著在模組命名空間查詢,最後在內建命名空間查詢,直到尋找到該名稱為止。 

Python命名空間和作用域

乙個命名空間中不能有重名,但不同的命名空間是可以重名而沒有任何影響。命名空間的生命週期取決於物件的作用域,如果物件執行完成,則該命名空間的生命週期就結束。因此,我們無法從外部命名空間訪問內部命名空間的物件。內建作用域是通過乙個名為 builtin 的標準模組來實現的,預定義了哪些變數 python ...

python命名空間和作用域

namespace 命名空間 命名空間 內建 命名空間 python直譯器啟動之後就可以使用的變數 函式名 全域性 命名空間 在函式外面的變數名 函式名 區域性 命名空間 每乙個函式都擁有自己的命名空間 python直譯器執行 載入順序 所有 內建空間函式名 變數 逐行 載入全域性空間變數 函式名 ...

Python命名空間和作用域

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