Was macht 'if name == "__main__":'?
Wenn ein Python-Skript als Hauptprogramm ausgeführt wird, weist es zu eine hartcodierte Zeichenfolge „__main__“ für die Variable name. Wenn das Skript von einem anderen Modul importiert wird, wird name dem für den Import verwendeten Namen zugewiesen; Wenn beispielsweise ein anderes Skript foo.py als import foo importiert, wird die Variable name in foo.py zu „foo“.
Durch Überprüfung, ob name vorhanden ist gleich „__main__“ und stellt sicher, dass der Code innerhalb des Guards nur ausgeführt wird, wenn das Skript direkt ausgeführt wird, nicht wenn es als importiert wird Modul.
Warum ist das notwendig?
Das Einschließen der if __name__ == "__main__":-Anweisung bietet mehrere Vorteile:
-
Verhinderung unerwünschter Ausführung : Wenn das Skript von einem anderen Modul importiert wird, wird der Code im Guard nicht ausgeführt, wodurch eine versehentliche Ausführung verhindert wird Code.
-
Unterschiedliches Verhalten für verschiedene Kontexte: Es ermöglicht eine unterschiedliche Codeausführung basierend auf dem Kontext (Ausführung als Hauptprogramm oder als Modul). Sie könnten beispielsweise bestimmte Funktionen festlegen, die nur ausgeführt werden, wenn das Skript direkt ausgeführt wird, oder Sie könnten Initialisierungs- oder Setup-Routinen nur ausführen, wenn das Skript als Hauptprogramm ausgeführt wird.
-
Schutz vor Spezifizierung Argumente: Beim Importieren eines Skripts als Modul ist es möglich, dass das importierte Skript über einen eigenen Parsing-Code für Befehlszeilenargumente verfügt. Der if __name__ == "__main__": Guard verhindert, dass das importierte Skript unerwartet mit den Befehlszeilenargumenten des importierenden Skripts ausgeführt wird.
Das obige ist der detaillierte Inhalt vonWas macht „if __name__ == „__main__':' in Python?. 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