2017-10-05 3 views
0

Ich habe ein Modul namens prog1.py, die eine Funktion und andere Aussagen enthält, wie folgt aus:Importieren einer bestimmten Funktion aus einem Modul

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

Ich versuche prog2.py nur die Funktion func von einem anderen Modul zu nennen wie dies: So

from prog1 import func 

N = input('input2') 
for i in range(N) 
    func(x,y,z) # with x,y,z already defined 

wenn prog2.py Ausführung statt zu fragen, für meine input2, fragt es für meine Eingabe von prog1.py. Ich kann from prog1 import func in meine for-Schleife verschieben, aber ich möchte nicht, dass sie nach dem anderen Eingang fragt. Gibt es eine Möglichkeit, func zu rufen, ohne was sonst in prog1.py zu verwenden?

Antwort

0

Der Code der obersten Ebene eines Moduls wird beim Import ausgeführt, und es gibt keine Möglichkeit, dies zu umgehen.

Wenn Sie nicht über die Linie wollen

var = input('input') 

ausgeführt werden, entfernen Sie es, steckt es in einer Funktion oder schützen sie mit

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

(in der Regel am Ende des Moduls).

Verwandte Themen