Möglicherweise 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 Datei 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.
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 das?
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 Anweisung. 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.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3