命名空間就是存放變數名和函式名的空間。
如果你想訪問乙個變數值,必須先訪問對應的命名空間,拿到名字和對應記憶體位址的繫結關係。
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 ...