Python双下划线方法隐藏在Python中的任何地方和后面!我很好奇,这是如何具体地与翻译工作。
import some_module as sm根据我目前的理解:
__init__.py。。。?似乎正在发生的事情比我的理解范围更大。我知道我们使用__init__()进行类初始化。它作为我们类的构造函数。我不明白调用导入是如何利用__init__.py的。
当我们运行import
__init__.py时,到底发生了什么?
发布于 2022-03-19 17:51:31
import some_module将寻找两件事中的一件。它要么在搜索路径中查找some_module.py,要么在some_module/__init__.py中查找。其中只有一个应该存在。当涉及到模块时,__init__.py唯一的意思是“这是表示该文件夹的模块”。因此,请考虑这个文件夹结构。
foo/
__init__.py
module1.py
bar.py然后,可用的三个模块是foo (对应于foo/__init__.py)、foo.module1 (对应于foo/module1.py)和bar (对应于bar.py)。按照惯例,foo/__init__.py通常会从module1.py导入重要的名称,并为了方便而重新导出其中的一些名称,但这绝不是一个要求。
https://stackoverflow.com/questions/71540600
复制相似问题