我可以使 Python 模块__init__.py可调用吗?



__init__.py的文档很难找到。我找不到一个地方来解释您可以在此文件中执行的所有操作。Python 模块文档甚至几乎没有提到__init__.py,也不能将__all__用于from module import *

我想要的是我的模块是可调用的,如下所示:

main.py

import module
module()

module/__ init __.py

def __call__(self):    # self here cause modules are loaded as objects?
    print 'callable'

也许是愚蠢的答案,但您可以将方法添加到__init__.py文件中,例如

__init__.py

def module():
    # what functions do you need to run into __init__ file

然后

main.py

from module import module
module()

此外,您只需将一些操作写入 init,然后在导入后调用

例:

__init__.py

print('1')
print('2')
print('3')

main.py

import module

运行 main.py 后输出将是

1
2
3

但实际上,这不是好的做法。尝试在不"调用"模块的情况下编写代码,因为模块是包含 Python 定义和语句的文件,而不是需要调用的函数。

最新更新