Seite 1 von 1

Verständnisfrage

Verfasst: Dienstag 22. März 2016, 10:39
von marena
Hallo!
Ich weiß das ist wahrscheinlich eine sehr einfache Frage, aber ich habe es jetzt schon so oft gelesen und verstehe irgendwie nie so recht, was es macht.

Code: Alles auswählen

if __name__ == '__main__':
    main()
was machen diese Codezeilen? Sie treten immer am Ende einer Funktion "main" auf und sorgen irgendwie für die Ausführung. Aber wofür stehen die einzelnen Einheiten, und hauptsächlich auch diese Unterstriche??

Würde mich sehr freuen, wenn ihr mich aufklären könntet!

Viele Grüße

Re: Verständnisfrage

Verfasst: Dienstag 22. März 2016, 10:53
von BlackJack
@marena: `__name__` ist der Name des Moduls, also normalerweise der Name der Python-Datei ohne die Endung. Ausser wenn man das Modul als Programm ausführt statt es zu importieren, dann hat es den Namen '__main__'. Und genau dazu ist dieses ``if`` da: Es unterscheidet ob das Modul importiert oder als Programm gestartet wurde und ruft die Hauptfunktion nur auf wenn es als Programm gestartet wurde. Darum kann man es importieren *ohne* dass das Hauptprogramm automatisch abläuft. Beispielsweise um Teile davon live in einer Python-Shell oder automatisiert mit Unit-Tests zu testen, oder in anderen Modulen zu verwenden, oder Werkzeuge zu verwenden die Module importieren um sie zu analysieren oder Dokumentation heraus zu ziehen. Module sollte man so schreiben das man sie ohne ”Nebenwirkungen” importieren kann.

Re: Verständnisfrage

Verfasst: Dienstag 22. März 2016, 11:28
von miracle173

Re: Verständnisfrage

Verfasst: Dienstag 22. März 2016, 12:46
von marena
Danke!!! :)