结构:
-- tst
------ __init__.py
------ app.py
假设执行如下:
python27 app.py
假设__init__.py
中有另一个导入,出于疑问,import os
如果我直接执行app.py
,如何确保__init__.py
也被执行?假设存在称为tst
的MANY模块,并且从app.py
调用import tst
是不明确的(或者它是?)。
有这样的东西吗:
app.py:
import . # import parent folder module, basically tell py27 to execute __init__.py
是的,我知道我可以像一个正常工作的人一样通过导入模块来解决所有的问题,但这个问题是python理论类型的问题——我一直在思考这个问题。。。
这可能是所有解决方案中最愚蠢的,所以如果有人能解释这有多糟糕,或者这是推荐的解决方案,那就去吧:
__init__.py:
print "hello world"
app.py:
import __init__
执行:python27 app.py
结果:hello world
您可能想看看这个相关的问题(更重要的是,真正的答案):
python 执行__init__.py文件的时间和频率
不过,通常情况下,__init__.py
只有在导入包含它的包时才会执行。