Heim >Backend-Entwicklung >Python-Tutorial >Was bewirkt Pythons Anweisung „if __name__ == „__main__':'?
Der __name__-Guard ist eine gängige Python-Sprache, die Benutzer schützt verhindern, dass versehentlich ein Skript aufgerufen wird, obwohl dies nicht beabsichtigt war. Das Weglassen dieses Schutzes kann zu unerwartetem Verhalten führen, wenn Sie das Skript in ein anderes Skript importieren oder als Pickle serialisieren.
Wenn der Interpreter liest Wenn Sie eine Quelldatei erstellen, führt sie zwei Dinge aus:
Wenn Sie Ihr Modul als Hauptprogramm ausführen, wird __name__ auf „__main__“ gesetzt. Andernfalls wird __name__ beim Importieren des Moduls auf den Namen des Moduls gesetzt.
Der __name__-Schutz funktioniert wie folgt:
Wenn __name__ == '__main__' (main Programm):
Wenn __name__ != '__main__' (importiertes Modul):
Untersuchen wir den folgenden Code:
print("before import") import math print("before function_a") def function_a(): print("Function A") print("before function_b") def function_b(): print("Function B {}".format(math.sqrt(100))) print("before __name__ guard") if __name__ == '__main__': function_a() function_b() print("after __name__ guard")
Mit dieser Redewendung können Sie .py-Dateien schreiben, die sowohl als unabhängige Module als auch als Skripte verwendet werden können, die als Hauptprogramm ausgeführt werden. Einige Beispiele für seine Nützlichkeit:
Zusammenfassend lässt sich sagen, dass das if __name__ == '__main__' Guard kann weggelassen werden, wird jedoch aus Gründen der Vielseitigkeit, des Fehlerschutzes und zur Verhinderung unerwarteten Verhaltens beim Importieren oder Serialisieren von Code empfohlen.
Das obige ist der detaillierte Inhalt vonWas bewirkt Pythons Anweisung „if __name__ == „__main__':'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!