Python3全局目录

Python3全局目录,python,python-internals,Python,Python Internals,当进入python3.6 shelldir时,会产生以下结果: >>> dir() ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__'] 例如,\uuuuuuuuuuuuuuuuuuu生成所有内置python方法,\uuuuuuu name\uuuuuuuuu将(始终?)成为\uuuuuuu main\uuuuuu。其他的呢:当(1

当进入python3.6 shell
dir
时,会产生以下结果:

>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
例如,
\uuuuuuuuuuuuuuuuuuu
生成所有内置python方法,
\uuuuuuu name\uuuuuuuuu
将(始终?)成为
\uuuuuuu main\uuuuuu
。其他的呢:当(1)在python解释器中时,是否填充了这些文件;或者(2)运行脚本:如果是,什么时候

下面是一个运行名为
temp.py
的python脚本的示例:

if __name__ == '__main__':
    print (dir())
    print ("__annotations__: %s" % __annotations__)
    print ("__builtins__: %s" % __builtins__)
    print ("__cached__: %s" % __cached__)
    print ("__doc__: %s" % __doc__)
    print ("__file__: %s" % __file__)
    print ("__name__: %s" % __name__)
    print ("__package__: %s" % __package__)
    print ("__spec__: %s" % __spec__)
运行它:

$ python temp.py
['__annotations__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__']
 __annotations__: {}
__builtins__: <module 'builtins' (built-in)> # <== always populated
__cached__: None
__doc__: None
__file__: temp.py # <== populated if running from a file/script
__name__: __main__ # <== populated (always with main?)
__package__: None
$python temp.py
[“注释”、“内置”、“缓存”、“文档”、“文件”、“加载程序”、“名称”、“规范”]
__注释:{}

__内置:在正在运行的脚本中,
\uuuuuu name\uuuuuu
只是
\uuuuuu main\uuuuu
。它保存被访问模块的完全限定名:

>>> __name__
'__main__'
>>> from logging import config
>>> config.__name__
'logging.config'
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

保存当前模块或函数的文档字符串


\uuuuuuuuuuuuuuuuuu注释\uuuuuuuuuu
包含全局变量。

不清楚你在问什么。“在全局python级别填充”是什么意思?根据我提出的唯一解释,或者其他所有这些都已经在您的测试中“在全局python级别上填充”,或者
\uuuuu内置项\uuuuu
\uuuu名称\uuuu
没有“在全局python级别上填充”。@user2357112稍微更新了这个问题。一些属性是在模块导入时设置的(请参阅)。现在还不清楚问题是什么,您需要澄清“全局python级别”。@wim更新为在python解释器中说,以使其更清楚。您如何在模块级别上有一个
\uuuuu doc\uuuu
?模块顶部的字符串就是它的docstring。请参见docopt利用此功能的示例: