从模块导入特定功能

时间:2017-10-05 11:39:03

标签: python-2.7 function import

我有一个名为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

1 个答案:

答案 0 :(得分:0)

模块的顶级代码在导入时执行,无法解决此问题。

如果您不想要该行

var = input('input')

要执行,删除它,把它放在一个函数中或用

保护它
if __name__ == '__main__'
    var = input('input')

(通常在模块的最后)。