Heim >Backend-Entwicklung >Python-Tutorial >Warum belassen Pythons „for'-Schleifen Schleifenvariablen im Gültigkeitsbereich?
Während Pythons Scoping-Regeln für „for“-Schleifen allgemein verstanden werden, ist die Begründung dahinter geblieben Geheimnis. In diesem Artikel werden die Gründe für die Designentscheidungen untersucht, die zum aktuellen Scoping-Verhalten geführt haben.
Betrachten Sie den folgenden Python-Code:
for foo in xrange(10): bar = 2 print(foo, bar)
Bei der Ausführung gibt dieser Code (9, 2) aus ). Dieses Verhalten ist überraschend, da „foo“ nur zur Steuerung der Schleifeniteration verwendet wird und „bar“ innerhalb der Schleife definiert ist. Logischerweise erscheint es unnötig, dass auf „bar“ außerhalb der Schleife zugegriffen werden kann und dass die Schleifensteuervariable „foo“ nach dem Beenden der Schleife im Gültigkeitsbereich bleibt.
Die plausibelste Erklärung für diese Designwahl ist Einfachheit . Durch die Einfachheit der Scoping-Regeln behält Python eine klare und prägnante Grammatik bei. Diese Entscheidung hat die Einführung nicht behindert und die Funktion wurde von der Community weitgehend akzeptiert. Das Zuweisen von Variablen innerhalb von Schleifenkonstrukten erfordert keine explizite Begriffsklärung des Bereichs. Darüber hinaus bietet das Schlüsselwort „global“ die Möglichkeit, Variablen einem globalen Bereich zuzuweisen.
Eine ausführliche Diskussion über die Bereichsregeln von Python finden Sie auf der Mailingliste „Python Ideas“. Ein bemerkenswertes Argument ist, dass vorhandener Code häufig darauf angewiesen ist, dass Schleifenvariablen ihre Werte nach dem Verlassen einer Schleife beibehalten, was als wünschenswerte Funktion angesehen wird.
Zusammenfassend lässt sich sagen, dass Pythons Designphilosophie für die Festlegung des Gültigkeitsbereichs in „for“-Schleifen der Einfachheit Priorität einräumt das Ziel, eine klare und prägnante Syntax beizubehalten. Dieser Ansatz hat sich in der Python-Community als beliebt erwiesen, trotz einiger potenzieller Nachteile in Bezug auf überfüllte globale Namespaces und Fehlerverfolgung.
Das obige ist der detaillierte Inhalt vonWarum belassen Pythons „for'-Schleifen Schleifenvariablen im Gültigkeitsbereich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!