我在python中创建了一个函数,该函数从另一个文件调用。但是,它被调用了两次。
以下功能位于 test.py -
中def test_fun():
print("test fun invoked")
我正在从 __ init __。py 文件调用该函数,如下所示
from sample.test import test_fun
test_fun()
但是test_fun
被执行两次。
我得到的输出为-
test fun invoked
test fun invoked
我做错什么了吗?
答案 0 :(得分:2)
__init__.py
每次加载包时都会执行,因为其中有一个函数调用,即使您从包中导入某些内容也将执行
参见What is __init__.py for?
您应该包装在模块本身被执行时要执行的执行,以检查它是否实际上被称为主要对象,否则模块将不安全地导入...
if __name__ == '__main__':
test_fun()