从另一个模块导入函数

Importing a Function from another module

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

所以我在 windw 模块中这样做了:

from mainprog import ret

这应该行得通吧?
但是mainprog模块中存在死循环。
因此,即使不调用我导入的函数,当我尝试 运行 windw 模块时,它也会永远加载。

所以我猜它 运行 是我导入时的整个 mainprog 模块?我需要帮助来避免这种情况。

你做的很好,你需要做的就是让循环不执行,除非你是 运行 代码本身你需要做的是添加一个

if __name__ == '__main__':
    while True: 

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

您必须确保文件 mainprog.py 除了函数定义、常量和 __main__ guard.

之外没有任何内容

如果您有其他类似的定义:

do_something()
def ret():
    ...

务必将其转换为:

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