__init__.py中的代码什么时候运行?

cro*_*bar 28 python

我已经阅读了文档,还有一些我还不确定的东西.__init__.py如果我这样做,那么整个模块的所有初始化代码都会运行:

from mymodule import mything
Run Code Online (Sandbox Code Playgroud)

或者只有我这样做

import mymodule
Run Code Online (Sandbox Code Playgroud)

什么运行__init__.py,何时运行?

我相信我也可以测试这个相当容易,但为了后人和对他人的帮助,我想我会在这里问.

Mar*_*ers 35

__init__.py无论何时从包中导入任何内容,都会运行代码.这包括导入该包中的其他模块.

导入(import packagenamefrom packagename import some_name)的风格在这里无关紧要.

与所有模块一样,代码只运行一次,并sys.modules在包名下输入.

  • 谢谢,我不认为这在其他问题中得到明确回答,而且它也不是问题本身的焦点. (2认同)