命名空间指的是变量存储的位置,每一个变量都需要存储到指定的命名空间当中。每一个作用域都会有一个对应的命名空间。
全局命名空间,用来保存全局变量,函数命名空间用来保存函数中的变量。
命名空间实际上就是一个字典,是一个专门用来存储变量的字典。
locals()用来获取当前作用域的命名空间。如果在全局作用域中调用locals()则获取全局命名空间,如果在函数作用域中调用locals()则获取函数命名空间,返回的是一个字典。
globals()用来在任意位置获取全局命名空间。
scope = locals() # h获取当前作用域的命名空间 print(scope) scope['a'] = 100 # 相当于在全局中创建了a变量 print(scope) def fn(): a = 10 scope = locals() # 获取函数的命名空间 print(scope) # {'a': 10} fn() print(globals()) # 在任意位置获取全局命名空间
Python在查找“名称”时,是按照LEGB规则查找的:Local→Enclosed→Global→Built in
本文作者:a
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!