python命名空間 namespace 簡單介紹

2022-09-28 08:54:06 字數 1339 閱讀 5377

命名空間: 每乙個作用域變數儲存的位置,或者解釋為 儲存作用域中變數的字典。

作用: 獲取想檢視某個作用域中的變數名、變數值。

使用方法: locals() #當前命名空間

1. 效果圖:

2. **

a=10

b=20

# 定義乙個變數接收全域性命名空間裡的變數名、變數值

global_namespace=locals()

print(global_namespace)

print('\n\n\n')

def one():

c=30

d=40

# 定義乙個變數程式設計客棧接收區域性命名空間裡的變數名、變數值

local_namespace=locals()

print(local_namespace)

# 呼叫o函式

one()

# 命名空間(namespace)

# 命名空間指的是變數儲存的位置,每乙個變數都需要儲存到指定的命名空間當中

# 每乙個作用域都會有乙個它對應的命名空間

# 全域性命名空間,用來儲存全域性變數。函式命名空間用來儲存函式中的變數

# 命名空間實際上就是乙個字典,是乙個專門用來儲存變數的字典

# locals()用來獲取當前作用域的命名空間

# 如果程式設計客棧在全域性作用域中呼叫locals()則獲取全域性命名空間,如果在函式作用域中呼叫locals()則獲取函式命名空間

# 返回的是乙個字典

scope = locals() # 當前命名空間

print(type(scope))

# print(a)

# print(scope['a'])

# 向scope中新增乙個key-value

scope['c'] = 1000 # 向字典中新增key-value就相當於在全域性中建立了乙個變數(一般不建議這麼做

# print(c)

def fn4():

a = 10

# scope = locals() # 在函式內部呼叫locals()會獲取到函式的命名空間

# scope['b'] = 20 # 可以通過scope來操作函式的命名程式設計客棧空間,但是也是不建議這麼做

# globals() 函式可以用來在任意位置獲取全域性命名空間

global_scope = globals()

# print(global_scope['a'])

global_scope['a'] = 30

# print(scope)

fn4()

本文標題: python命名空間(namespace)簡單介紹

本文位址:

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 ...