含義:python的命名空間就是把棧區中的進行分類,作用域是根據命名空間的作用範圍和特點進行分類
# 一:命名空間namespace:存放名字的地方,是對棧區的劃分# 有了命名空間之後,就可以在棧區中存放相同的名字,詳細的,命名空間
# 分為三種
# 1.1 內建命名空間
# 存放的名字:存放的python直譯器內建的名字
>>> input
'''# 存活週期:python直譯器啟動則產生,python直譯器關閉則銷毀
# 1.2 全域性命名空間
# 存放的名字:執行頂級**所產生的名字,或者說不是函式內定義,也不是內建的,剩下的都是全域性命名空間
# 存活週期: python檔案執行則產生,python檔案執行完畢後
import os
x = 10
if 13 > 3:
y = 20
if 3 ==3:
z = 20
def func():
a = 111
b = 222
# 1.3 區域性命名空間
# 存放的名字:在呼叫函式時,執行函式體**過程中產生的函式內的名字
# 存活週期:在呼叫函式時存活,函式呼叫完畢後則銷毀
def func():
a = 111
b = 222
# 1.4 命名空間的加在順序
# 內建命名空間》 全域性命名空間》區域性命名空間
# 1.5 銷毀順序
# 區域性命名空間》全域性命名空間》內建命名空間
# 1.6 名字的查詢優先順序:當前所在的位置向上一層一層查詢
# 內建命名空間
# 全域性命名空間
# 區域性命名空間
注意:命名空間已定義階段為準,如圖:
Python命名空間和作用域
乙個命名空間中不能有重名,但不同的命名空間是可以重名而沒有任何影響。命名空間的生命週期取決於物件的作用域,如果物件執行完成,則該命名空間的生命週期就結束。因此,我們無法從外部命名空間訪問內部命名空間的物件。內建作用域是通過乙個名為 builtin 的標準模組來實現的,預定義了哪些變數 python ...
python命名空間和作用域
namespace 命名空間 命名空間 內建 命名空間 python直譯器啟動之後就可以使用的變數 函式名 全域性 命名空間 在函式外面的變數名 函式名 區域性 命名空間 每乙個函式都擁有自己的命名空間 python直譯器執行 載入順序 所有 內建空間函式名 變數 逐行 載入全域性空間變數 函式名 ...
Python命名空間和作用域
準備知識 1.在python直譯器開始執行之後,機會在記憶體中開闢乙個空間,每當遇到 乙個變數的時候,就把變數和值之間的關係記錄下來,但是當遇到函式定義 的時候,直譯器只是把函式名讀入記憶體,表示這個函式存在,至於函式內部 的變數和邏輯,直譯器是不關心的。也就是說一開始的時候函式只是載入進 來,僅此...