if __name__ == '__main__': main()

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
alfonsospringer
User
Beiträge: 34
Registriert: Sonntag 24. August 2008, 21:50

Freitag 26. Dezember 2008, 16:43

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?
bremer
User
Beiträge: 109
Registriert: Sonntag 25. Mai 2008, 00:13

Freitag 26. Dezember 2008, 16:49

Fehler Nr 1:
Vergessen Google zu nutzen.

http://effbot.org/pyfaq/tutor-what-is-i ... in-for.htm
alfonsospringer
User
Beiträge: 34
Registriert: Sonntag 24. August 2008, 21:50

Freitag 26. Dezember 2008, 16:52

Hasst recht, danke.

Frohe Weihnachten & Guten Rutsch
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Freitag 26. Dezember 2008, 16:52

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.
alfonsospringer
User
Beiträge: 34
Registriert: Sonntag 24. August 2008, 21:50

Freitag 26. Dezember 2008, 16:57

Danke für das schöne Geschenk!
Benutzeravatar
cofi
Moderator
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Freitag 26. Dezember 2008, 17:11

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 ;)
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Freitag 26. Dezember 2008, 17:18

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.
alfonsospringer
User
Beiträge: 34
Registriert: Sonntag 24. August 2008, 21:50

Freitag 26. Dezember 2008, 20:59

Man weiss ja nie - vielleicht spricht sich dein Ruf als barmherziger Weisheitsstifter ja rum und du wirst heilig gesprochen :)
Antworten