python中的命名空間

2022-04-11 15:25:52 字數 817 閱讀 6831

命名空間就是存放變數名和函式名的空間。

如果你想訪問乙個變數值,必須先訪問對應的命名空間,拿到名字和對應記憶體位址的繫結關係。

1、內建命名空間

python提前定義好的名字,就是存在於內建命名空間

2、全域性命名空間

存放於檔案級別的名字,就叫做全域性命名空間

(在全域性空間下)if while for內部定義的名字執行之後都存放於全域性命名空間

3、區域性命名空間

函式內部定義的名字都存放於當前函式的命名空間

1、內建命名空間

在python直譯器啟動時生效,關閉時失效

2、全域性命名空間

執行當前py檔案時生效,**執行結束後失效

3、區域性命名空間

當你呼叫當前函式時生效,函式執行完後失效

命名空間的查詢順序:

區域性:區域性 > 全域性 >內建

全域性:全域性 > 內建 #

內建再找不到就報錯

#函式內部使用的名字,在定義階段已經規定死了,與你的呼叫位置無關

"""

作用域的分類:

1、全域性作用域

全域性可以呼叫的名字就存在於全域性作用域

內建命名空間+全域性命名空間

2、區域性作用域

區域性可以呼叫的名字就存放與區域性作用域

區域性命名空間

global:宣告全域性變數(***)

nonlocal:在區域性命名空間宣告區域性變數,在區域性修改上層函式的變數(*)

只有可變型別可以在區域性修改外部變數的值 (*****)

"""

Python 命名空間

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

python 命名空間

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

python命名空間

區域性命名空間下def foo a a if name main foo 報錯資訊 unboundlocalerror local variable a referenced before assignment 全域性命名空間下if name main b b報錯資訊 nameerror name ...