2017-10-05 112 views
0

我有一个名为prog1.py模块,它包含一个函数等语句,就像这样:从模块导入特定的功能

def func(a,b,c) 
    ... 
    ... 
    return output 
var = input('input') 
    ... 

我试图从不同的模块prog2.py像刚才打电话的功能func这样的:

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

模块的顶层代码在导入时执行,并且没有办法绕过它。

如果你不想行要执行

var = input('input') 

,删掉它,把它放在一个函数或

if __name__ == '__main__' 
    var = input('input') 

(通常在模块的终止保护它)。