Ich bin neu in Python, daher ist dies wahrscheinlich eine einfache Frage. Der folgende Code in einer Python-Datei (Modul) verwirrt mich leicht:
if __name__ == '__main__':
x = 1
print x
In anderen Sprachen, in denen ich gearbeitet habe, würde dieser Code eine Ausnahme auslösen, da die x
Variable lokal für die if
Anweisung ist und nicht außerhalb der Anweisung existieren sollte. Aber dieser Code wird ausgeführt und gedruckt 1. Kann jemand dieses Verhalten erklären? Sind alle in einem Modul erstellten Variablen global / für das gesamte Modul verfügbar?
if
obige Anweisung nicht zutrifft (dh__name__
beispielsweise nicht'__main__'
, wenn Sie das Modul importieren, anstatt es auf oberster Ebene auszuführen), wurdex
es nie gebunden, und die nachfolgendeprint x
Anweisung wird ein werfenNameError: name 'x' is not defined
.