Seite 1 von 1

der if __name__ trick

Verfasst: Sonntag 20. Juli 2008, 13:45
von breathe_easy
ich habe nun schon mehrfach folgende Funktionsdef. gefunden:

Code: Alles auswählen

if __name__ == "__main__":
was genau hat es damit auf sich?

breathe_easy

Verfasst: Sonntag 20. Juli 2008, 14:03
von BlackVivi
foo.py:

Code: Alles auswählen

print __name__
bar.py:

Code: Alles auswählen

import foo

Code: Alles auswählen

[vivi@Alexandria ~]$ python foo.py
__main__
[vivi@Alexandria ~]$ python bar.py
foo
Das heißt... in __name__ steckt der Name des Moduls, außer wenn es das Modul ist, was man aufruft. Die Abfrage fragt also "Haben wir das Modul direkt aufgerufen oder importiert?"... Denn __name__ ist nur __main__ wenn es direkt aufgerufen ist. So können wir innerhalb Funktionen definieren und trotzdem in einem anderen Modul verwenden ohne automatisch irgendwas auszuführen.

Verfasst: Sonntag 20. Juli 2008, 15:32
von lunar
[wiki=Import#AusfhrungAlsSkript]Import[/wiki]