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

时间:2017-02-15 11:08:57

标签: python

__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'

1 个答案:

答案 0 :(得分:1)

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

<强> __初始化__。PY

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

然后

<强> main.py

from module import module
module()

另外,您可以将一些操作写入 init ,然后在导入后调用

示例:

<强> __初始化__。PY

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

<强> main.py

import module
运行 main.py

输出将是

1
2
3

但实际上,这不是一个好习惯。尝试编写代码而不用&#34;调用&#34;模块,因为模块是包含Python定义和语句的文件,而不是需要调用的函数。