命名空间
- 命名空间指的是变量存储的位置,每一个变量都需要存储到指定的命名空间中。
- 每一个作用域都会有一个对应的命名空间。
- 全局命名空间,用来保存全局变量。函数命名空间,用来保存函数中的变量。
- 命名空间实际上就是一个字典,专门用来存储变量的字典。
- locals()用来获取当前作用域的命名空间
- 如果在全局作用域中调用locals()则获取全局命名空间,如果在函数作用域中调用locals()则获取函数命名空间。返回的是一个字典。
- 1.在全局作用域中调用locals()
scope=locals()#当前命名空间print(scope)
scope=locals() print(scope) scope['c']=1000#像字典中添加key-value相当于在全局变量中创建了一个变量,实际应用中不这么做,仅做演示print(c)
2.#在函数内部通过调用 locals()会获取函数的命名空间
scope=locals() deffn(): scope=locals() scope['a']=23# 可以通过 scope 来操作函数的命名空间,一般不建议这么做print(scope) fn()
3.#globals ()函数可以用来在任意位置获取全局命名空间
scope=locals() a=10deffn(): #globals ()函数可以用来在任意位置获取全局命名空间globals_scope=globals() print(globals_scope) fn()
scope=locals() a=10deffn(): a=20#globals ()函数可以用来在任意位置获取全局命名空间globals_scope=globals() print(globals_scope['a']) fn()
获取到全局变量a=10