Was passiert, wenn __name__ == "__main__": tut? Warum eine if-Anweisung einschließen?
Dieser Code prüft, ob das Modul als Hauptprogramm ausgeführt wird (und nicht als Modul importiert). Wenn es als Hauptprogramm ausgeführt wird, führt es den Code innerhalb der if-Anweisung aus.
Warum diese Anweisung einschließen?
-
Schützt vor unbeabsichtigter Skriptausführung:
- Ohne diese Prüfung wird ein Skript importiert (z. B. import my_script) würde versehentlich den Code des Skripts ausführen, selbst wenn Sie nur seine Funktionen/Klassen importieren wollten. Dies könnte zu Konflikten oder unerwartetem Verhalten führen.
-
Verhindert Probleme beim Beizen:
- Beizen einer in a definierten Klasse Das Skript würde die Ausführung des Skripts auslösen und das Skript in die Unpickling-Umgebung importieren. Dies kann zu Problemen mit Befehlszeilenargumenten und anderen skriptspezifischen Abhängigkeiten führen.
Wie funktioniert es?
-
__name__: Wenn Python ein Skript ausführt, setzt es die Variable name auf „__main__.“
-
Importieren eines Moduls: Wenn Sie ein Nicht-Hauptmodul importieren, weist Python den Namen des Moduls seinem __name__ zu.
Beispiel:
if __name__ == "__main__":
print("This code will run when the script is executed.")
# This code will not run when the script is imported.
print("This code will only run when the script is imported.")
Dadurch wird sichergestellt, dass der erste Codeblock nur ausgeführt wird, wenn das Skript ausgeführt wird direkt (z. B. Python my_script.py), während der zweite Codeblock nur ausgeführt wird, wenn das Skript in ein anderes Skript importiert wird (z. B. import my_script).
Erweiterte Überlegungen:
-
Mehrere Name Wachen: Es wird im Allgemeinen nicht empfohlen, mehrere Name-Prüfungen in einer einzelnen Datei durchzuführen, da dies zu unerwartetem Verhalten führen könnte.
-
Benutzerdefinierte Name-Werte: Sie können name manuell außerhalb der if-Anweisung festlegen, um verschiedene Ausführungsszenarien zu testen oder mehr Kontrolle über das Skript zu erhalten Ausführung.
Das obige ist der detaillierte Inhalt vonWas bewirkt „if __name__ == „__main__':' in Python und warum ist es wichtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!
Stellungnahme:Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn