我想从一个名为ret()
的模块中导入一个名为mainprog
的函数到另一个名为windw
的模块中。
所以我在windw
模块中做到了这一点:
from mainprog import ret
这应该正常吗?
但是mainprog
模块中存在无限循环。
因此,即使不调用我导入的函数,当我尝试运行windw
模块时,它也会永久加载。
所以我想它在导入时会运行整个mainprog
模块吗?我需要帮助来避免这种情况。
答案 0 :(得分:1)
一切都很好,您需要做的就是使循环不执行,除非您自己运行代码,而要做的是添加一个
if __name__ == '__main__':
while True:
这将使您的程序像以前一样工作,但可以在代码中导入函数
答案 1 :(得分:0)
您必须确保文件mainprog.py
除了函数,常量和__main__
guard的定义之外没有其他内容。
如果您还有其他定义,例如:
do_something()
def ret():
...
请务必将其转换为:
def ret():
...
if __name == '__main__':
do_something()