我有一个名为prog1.py
的模块,其中包含一个函数和其他语句,如下所示:
def func(a,b,c)
...
...
return output
var = input('input')
...
我试图从另一个模块func
中调用函数prog2.py
,如下所示:
from prog1 import func
N = input('input2')
for i in range(N)
func(x,y,z) # with x,y,z already defined
因此,当执行prog2.py
而不是要求我input2
时,它会要求prog1.py
输入。我可以将from prog1 import func
移到我的for循环中,但我不希望它要求其他输入。有没有办法在不使用func
中的任何其他内容的情况下调用prog1.py
?
答案 0 :(得分:0)
模块的顶级代码在导入时执行,无法解决此问题。
如果您不想要该行
var = input('input')
要执行,删除它,把它放在一个函数中或用
保护它if __name__ == '__main__'
var = input('input')
(通常在模块的最后)。