我已经阅读了文档,还有一些我还不确定的事情。如果我这样做,__init__.py
中整个模块的所有初始化代码都会运行:
from mymodule import mything
或仅当我
时import mymodule
从__init__.py
运行什么以及何时运行?
我确信我也可以相当容易地测试这一点,但为了后人和对他人的帮助,我想我会在这里问。
答案 0 :(得分:34)
每当您从包中导入任何时,都会运行__init__.py
中的代码。这包括导入该包中的其他模块。
导入方式(import packagename
或from packagename import some_name
)在这里并不重要。
与所有模块一样,代码只运行一次,并在包名下输入sys.modules
。