2017-10-05 152 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') 

(通常在模塊的終止保護它)。