Verständnisfrage

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
marena
User
Beiträge: 15
Registriert: Dienstag 22. März 2016, 10:35

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
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.
marena
User
Beiträge: 15
Registriert: Dienstag 22. März 2016, 10:35

Danke!!! :)
Antworten