Seite 1 von 1

if __name__ == '__main__': main()

Verfasst: Freitag 26. Dezember 2008, 16:43
von alfonsospringer
Hi!

immer wieder sehe ich am Anfang von Python Programmen folgende Codezeile:

Code: Alles auswählen

if __name__ == '__main__': main()
Ich komme nicht dahinter, was sie bewirkt und wofür sie gut ist. Sagt mir's jemand?

Verfasst: Freitag 26. Dezember 2008, 16:49
von bremer
Fehler Nr 1:
Vergessen Google zu nutzen.

http://effbot.org/pyfaq/tutor-what-is-i ... in-for.htm

Verfasst: Freitag 26. Dezember 2008, 16:52
von alfonsospringer
Hasst recht, danke.

Frohe Weihnachten & Guten Rutsch

Verfasst: Freitag 26. Dezember 2008, 16:52
von Nocta
Wenn das Programm importiert wird, ist __name__ gleich dem Dateinamen.
Wenn das Programm aber selbst ausgeführt wird, ist __name__ gleich __main__.
Die Überprüfung, if __name__ == __main__ heißt also eigentlich nur: Wenn dieses Programm das Hauptprogramm ist, welches aufgerufen wurde - Also nicht importiert wurde.
Das soll verhindern, dass Programmcode beim Importieren der Datei ausgeführt wird.
Sonst würde man jedes mal, wenn man das Programm importiert und eigentlich nur die Funktionen/Klassen, die in dem Programm enthalten sind, importieren will, auch die print-Anweisungen und sonstiges ausführen, was sonst noch so in dem Programm gemacht wird.

Edit: Fehler nr 2: Auf 1000 mal beantwortete Fragen nochmals neu antworten :) Aber egal, wir haben Weihnachtszeit und ich wollte auch mal wieder was posten.

Verfasst: Freitag 26. Dezember 2008, 16:57
von alfonsospringer
Danke für das schöne Geschenk!

Verfasst: Freitag 26. Dezember 2008, 17:11
von cofi
Nocta hat geschrieben:Edit: Fehler nr 2: Auf 1000 mal beantwortete Fragen nochmals neu antworten :) Aber egal, wir haben Weihnachtszeit und ich wollte auch mal wieder was posten.
Ach so schlimm ist das nicht :) Der Einzige der damit ein Problem hast bist du, auch ist das schöner wenn mans bei Google trifft und gleich die Antwort findet und nich weiter klicken muss ;)

Verfasst: Freitag 26. Dezember 2008, 17:18
von Nocta
Naja, so schlimm fand ich's dann auch wieder nicht ;)
Jetzt hab ich mir fast 'nen Platz in der Bibel verdient ... Schade, dass ich 2008 Jahre + 2 Tage zu spät komme.

Verfasst: Freitag 26. Dezember 2008, 20:59
von alfonsospringer
Man weiss ja nie - vielleicht spricht sich dein Ruf als barmherziger Weisheitsstifter ja rum und du wirst heilig gesprochen :)