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

Was haben Sie versucht? Welche Fehler sind Sie immer? Bitte sagen Sie mir, Sie nicht verschwenden, einen ganzen Tag Ihrer kostbaren Mortalität "Erforschung" dieses problem ist ohne ausführen von code.
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

Schreibe einen Kommentar