📅  最后修改于: 2023-12-03 15:04:38.186000             🧑  作者: Mango
在Python中,命名空间是一个重要的概念。命名空间是一种将名称与对象相关联的方法。简而言之,命名空间是一个字典,其中名称是键,对象是值。
# 示例
x = 5
print(globals())
# {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, 'x': 5}
该示例中,globas()返回给定上下文中定义的全局名称和其对应的值的字典。
在Python中,有四个命名空间:
这种阶层结构称为范围(Scope)。在Python中,命名空间之间的范围用于找到名称的真实对象。例如,在函数内部定义的变量始终比全局定义的变量具有更高的优先级。
# 示例
x = 1 # 全局变量
def foo():
x = 2 # 局部变量
print(x) # 输出2
foo()
print(x) # 输出1
在这个示例中,函数foo()定义了一个局部变量x。当foo()被调用时,它打印该局部变量x的值(即2)。在打印该变量后,foo()结束,并且局部变量x在该函数内部被删除。然后,全局变量x的值被打印(值为1)。
总结: