【问题标题】:Importing a Function from another module从另一个模块导入函数
【发布时间】:2018-10-21 15:03:40
【问题描述】:
我想将名为 ret() 的函数从名为 mainprog 的模块导入另一个名为 windw 的模块。
所以我在windw 模块中这样做了:
from mainprog import ret
这应该可以正常工作吗?
但是mainprog 模块中有一个无限循环。
因此,即使没有调用我导入的函数,当我尝试运行 windw 模块时,它也会永远加载。
所以我猜它在我导入时会运行整个mainprog 模块?我需要帮助来避免这种情况。
【问题讨论】:
标签:
python
import
module
python-import
【解决方案1】:
你做得很好,你需要做的就是让循环不执行,除非你自己运行代码你需要做的是添加一个
if __name__ == '__main__':
while True:
这将使您的程序像以前一样工作,但可以在您的代码中导入函数
【解决方案2】:
您必须确保文件mainprog.py 除了函数定义、常量和__main__ guard 之外没有任何内容。
如果您还有其他类似的定义:
do_something()
def ret():
...
请务必将其转换为:
def ret():
...
if __name == '__main__':
do_something()