命名空間: 每一個作用域變量存儲的位置,或者解釋為 存儲作用域中變量的字典。
作用: 獲取想查看某個作用域中的變量名、變量值。
使用方法: 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) # 調用one函數 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()