Damit können Sie dieselbe Datei sowohl als Bibliothek (durch Importieren) als auch als Ausgangspunkt für eine Anwendung verwenden.
Betrachten Sie zum Beispiel die folgende Datei:
%Vor% Sie können diesen Code auf zwei Arten verwenden. Zum einen können Sie ein Programm schreiben, das es importiert. Wenn Sie die Bibliothek importieren, wird __name__
der Name der Bibliothek sein und daher wird die Überprüfung fehlschlagen und der Code wird nicht ausgeführt (was das gewünschte Verhalten ist):
Wenn Sie diese zweite Datei nicht schreiben möchten, können Sie Ihren Code direkt von der Befehlszeile aus mit folgendem Befehl ausführen:
%Vor% Dieses Verhalten hängt alles von der speziellen Variablen __name__
ab, die python abhängig davon setzt, ob die Bibliothek importiert oder direkt vom Interpreter ausgeführt wird. Wenn es direkt ausgeführt wird, wird es auf __main__
gesetzt. Wenn es importiert wird, wird es auf den Bibliotheksnamen gesetzt (in diesem Fall hello
).
Oft wird dieses Konstrukt verwendet, um Komponententests zu Ihrem Code hinzuzufügen. Auf diese Weise können Sie beim Schreiben einer Bibliothek den Testcode direkt in die Datei einbetten, ohne befürchten zu müssen, dass sie ausgeführt wird, wenn die Bibliothek auf die übliche Weise verwendet wird. Wenn Sie die Bibliothek testen möchten, benötigen Sie kein Framework, da Sie die Bibliothek einfach so ausführen können, als wäre es ein Programm.
Siehe auch __main__
in der Python-Dokumentation (obwohl es bemerkenswert spärlich ist)
Grundsätzlich
Es gibt einen Unterschied zwischen der "Haupt" -Skriptdatei und externen Dateien, die auf andere Weise importiert oder referenziert wurden. Wenn das Skript das "Haupt" -Skript ist, dann ist die spezielle Variable __name__
gleich "__main__"
.
Damit können Sie den Ausführungscode vor den Klassen und Variablen des Skripts schützen. Auf diese Weise können Sie ein Skript importieren und Klassen und Variablen verwenden, ohne den Hauptcode dieses Skripts auszuführen, falls vorhanden.