python - Python3 全局目录
问题描述
在 python3.6 shell 中输入时dir
会产生以下结果:
>>> dir()
['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
__builtins__
生成所有内置的 python 方法,例如这里描述的那些,并且__name__
将(总是?)是__main__
。其他人呢:当(1)在python解释器中时,那些曾经被填充过;或(2)运行脚本:如果是,什么时候?
这是运行名为的python脚本的示例temp.py
:
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
__annotation__
, __cached__
, __doc__
,如何/何时__package__
填充?而__name__
不是__main__
吗?
解决方案
__name__
仅__main__
在正在运行的脚本中。它包含访问它的模块的完全限定名称:
>>> __name__
'__main__'
>>> from logging import config
>>> config.__name__
'logging.config'
__cached__
并且__package__
是与导入相关的模块属性。
__doc__
保存当前模块或函数的文档字符串。
__annotations__
持有全局注解。
推荐阅读
- python - 从 pandas .mean() 中排除列
- javascript - Next.js 中的动态路由获取 TypeError:“id”参数必须为“字符串”类型。收到空
- python - Python str() function applied to dataframe column
- xml - 通过 XMLJavaTypeAdapter 处理自定义 LocalDateTime
- angular - How to combine this two sevice call with in the single effect one out put result as input of other?
- regex - 验证单词开头的两个星号
- java - Why does the file name appear garbled when using easyExcel to export the excel file?
- c - Using structure/union combinations
- segmentation-fault - SIGSEGV, Segmentation fault with memcpy_avx_unaligned
- python - 谁能帮我解决我遇到的这个错误?不和谐.py