wenn __name__ == '__main__' - Funktion aufrufen
Ich versuche zu arbeiten um ein problem, dem ich begegnet bin, in einem Stück code, den ich brauchen, um zu bauen. Ich habe ein python-Modul, das ich brauche, um in der Lage zu importieren und Argumente übergeben werden, die dann analysiert werden mit dem Hauptmodul. Was ich erhalten habe sieht wie folgt aus:
#main.py
if __name__ == '__main__'
sys.argv[] #pass arguments if given and whatnot
Do stuff...
Was ich brauche ist eine main()
Funktion einnehmen kann-argument(en) und analysieren Sie Sie und übergeben Sie Sie auf wie so:
#main.py with def main()
def main(args):
#parse args
return args
if __name__ == '__main__':
sys.argv[] #pass arguments if given and whatnot
main(sys.argv)
Do stuff...
Zusammenfassend: ich brauche zu importieren main.py und pass auf Argumente, die analysiert werden, von der main()
Funktion und geben Sie die zurückgegebenen Informationen, um die if __name_ == '__main_'
Teil.
BEARBEITEN
Um zu verdeutlichen, was ich Tue,
#hello_main.py
import main.py
print(main.main("Hello, main"))
AUCH möchte ich noch nennen zu können main.py von shell über
$: python main.py "Hello, main"
Damit die Erhaltung der Namen == main
Ist, was Frage ich überhaupt? Ich habe verbringen den größten Teil des heute zu diesem Thema forscht, weil ich möchte, wenn möglich, die Erhaltung der main.py Modul, das mir gegeben worden ist.
Dank,
dmg
if __name__ == '__main__':
Teil wird nur ausgeführt, wenn das Modul genannt, nicht importiert.Was ist falsch mit dem Aufruf von Ihrem
main
im if __name__ =='__main__'
mit den übergebenen Argumenten, die von sys.argv?Wie Sie call ein Modul?
Aufruf zu breiter, ja. Ich meinte ausführen aus dem terminal oder execfile aus einem anderen Modul.
InformationsquelleAutor DmgCtrl-b.net | 2017-02-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Innerhalb einer Modul-Datei, die Sie schreiben können
if __name__ == "__main__"
bestimmte Verhaltensweisen beim aufrufen der Datei direkt, z.B. via shell:Kann man dann immer noch die Funktion, beim Import in einer anderen Datei:
So, Berufung
python test.py
führt"In test: test test "
beim aufrufenpython mymodule.py hello
führt"In mymodule: hello hello "
.InformationsquelleAutor M.T
Wenn ich deine Frage verstanden richtig du willst so etwas tun:
InformationsquelleAutor ShadowMitia