从另一个模块导入功能

时间:2018-10-21 15:03:41

标签: python import module python-import

我想从一个名为ret()的模块中导入一个名为mainprog的函数到另一个名为windw的模块中。

所以我在windw模块中做到了这一点:

from mainprog import ret

这应该正常吗?
但是mainprog模块中存在无限循环。
因此,即使不调用我导入的函数,当我尝试运行windw模块时,它也会永久加载。

所以我想它在导入时会运行整个mainprog模块吗?我需要帮助来避免这种情况。

2 个答案:

答案 0 :(得分:1)

一切都很好,您需要做的就是使循环不执行,除非您自己运行代码,而要做的是添加一个

if __name__ == '__main__':
    while True: 

这将使您的程序像以前一样工作,但可以在代码中导入函数

答案 1 :(得分:0)

您必须确保文件mainprog.py除了函数,常量和__main__ guard的定义之外没有其他内容。

如果您还有其他定义,例如:

do_something()
def ret():
    ...

请务必将其转换为:

def ret():
    ...
if __name == '__main__':
    do_something()