Python 理解dir()中存储的变量

Python 理解dir()中存储的变量,python,Python,从python文档中获取: 我的理解是,它的作用与locals()相同,但这是错误的: >>> dir() ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__'] >>> locals() {'__name__': '__main__', '__doc__': None, '__package__': None, '

从python文档中获取:

我的理解是,它的作用与
locals()
相同,但这是错误的:

>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']

>>> locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>}
>>dir()
[“注释”、“内置”、“文档”、“加载程序”、“名称”、“包”、“规范”]
>>>本地人()
{uuuuu名称:''uuuuu主文件',''uuuuu文档':无','uuuuu包:无','uuuuu装入器:无','uuuu规范:无','uuuuuuu注释:{},'uuuuuuuuuuuuuuuu内置:

这两个内置函数之间有什么区别,为什么在这个上下文中不提供相同的结果?

dir()
返回当前本地范围内的名称列表,如文档所述。另一方面,返回一个字典。此词典将名称作为键,将其值作为值。这些名称应该与Barmar返回的列表相同谢谢。
dir()是一个名称列表,
globals()
是一个将名称映射到值的字典
dir()==list(locals())
@blhsing我明白了——明白了。
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']

>>> locals()
{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <class '_frozen_importlib.BuiltinImporter'>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>}