Vielleicht haben Sie diese Codezeile if __name__=="__main__": häufig in Python-Skripten gesehen, ohne zu wissen, wozu sie eigentlich dient. Machen Sie sich keine Sorgen, denn in diesem kurzen Blog werden wir darüber diskutieren
Wenn Sie ein Programm oder Skript direkt ausführen, weist Python automatisch „main“ der speziellen Variablen name zu. Dies geschieht im Wesentlichen, um anzuzeigen, dass die Datei hier das „Haupt“-Skript ist und direkt ausgeführt wird, anstatt in ein anderes importiert zu werden.
Um dies zu verstehen, erstellen Sie ein neues Python-Skript, nennen Sie es beispielsweise „example.py“ und schreiben Sie:
print("Name of Script: ", __name__)
Führen Sie dies aus und Sie sehen den Ausgabenamen des Skripts: __main__. Das liegt einfach daran, dass die Datei direkt ausgeführt wird.
Erstellen Sie nun eine weitere Python-Skriptdatei und importieren Sie die example.py in diese Datei. Führen Sie es aus und Sie werden ein anderes Ergebnis sehen: Name des Skripts: Beispiel. Das liegt einfach daran, dass wir das Skript jetzt importieren und indirekt ausführen, anstatt es direkt auszuführen. Daher zeigt Python jetzt den tatsächlichen Namen der Datei an.
Lassen Sie uns einige Änderungen an unserer Beispieldatei vornehmen, damit wir sie noch besser verstehen können.
def s_name(): print("Name of Script: ", __name__) s_name() def greet(): print("Hello! How are you doing?") if __name__=="__main__": greet()
Wenn Sie dies nun direkt ausführen, wird alles perfekt ausgeführt. Wenn Sie jedoch die andere Datei ausführen, in die Sie das Skript example.py importieren, werden Sie feststellen, dass der Aufruf der Begrüßungsfunktion nicht ausgeführt wurde. Warum ist das so?
Dies liegt an der if-Bedingung. Die Bedingung prüft, ob die Datei direkt ausgeführt wird oder nicht. Wenn es direkt ausgeführt wird, wird main der speziellen Variablen name zugewiesen, wodurch diese Bedingung wahr wird und alles innerhalb der Bedingung wie gewohnt ausgeführt wird.
Aber wenn Sie es andererseits in eine andere Datei importieren und von dort aus indirekt ausführen, wäre die Bedingungsanweisung nicht wahr und alles, was in die Bedingung eingefügt wurde, wird nicht ausgeführt.
Das ist die Bedeutung dieser bedingten Aussage. Es verhindert, dass der Python-Interpreter automatisch unnötige Codezeilen ausführt, wenn wir ein Skript als Modul importieren.
Wir können diese Funktionen jedoch auch dann aufrufen, wenn wir ein Skript als Modul importieren. Zum Beispiel:
import example example.greet()
Auf diese Weise können wir alle Funktionen aus dem importierten Modul perfekt aufrufen, auch wenn die Bedingung nicht erfüllt ist.
Das obige ist der detaillierte Inhalt vonWas passiert, wenn __name__ =__main__ in Python geschieht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!