Oh, Junge, da ist ein Code auf dem Bildschirm und er sieht furchtbar verwirrend aus.
Dies ist ein Beispiel für eine wirklich verworrene, komplizierte Funktion, die Sie niemals schreiben würden, aber für
Übungszwecke gut geeignet ist.
Und wir sprechen hier speziell über das, was man nicht lokal nennt.
Es ist eigentlich ein neues Schlüsselwort in Python 3.
Und wie Sie sehen, merkt mein Reppel es nicht einmal.
Es wird also nicht einmal blau hervorgehoben, da es sich um ein neues Feature handelt.
Aber ich möchte mit Ihnen darüber sprechen und Sie wissen lassen, was es bewirkt.
Das Schlüsselwort nonlocal key wird verwendet, um auf diesen Teil, dieses übergeordnete lokale, zu verweisen.
Auf diese Weise können wir sagen, hey, ich möchte eine Variable verwenden, die keine globale Variable ist, aber außerhalb
des Geltungsbereichs meiner Funktion liegt.
Versuchen Sie also basierend auf dieser Definition, das Video anzuhalten und zu sehen, was diese Funktion tun könnte. Ich führe sie
jetzt aus und gehe dann den Code durch, wenn ich auf Ausführen klicke.
Das bekommen wir.
Reden wir also darüber.
Wir haben eine äußere Funktion und dann rufen wir die äußere Funktion auf.
Der Python-Interpreter wird also sagen, in Ordnung, wir haben eine X-Variable, die lokal für
die äußere Funktion ist.
Und dann definieren wir hier drinnen eine innere Funktion, eine andere Funktion.
Und hier drin, bevor wir das überhaupt nennen, sind wir in Zeile neun gesprungen und haben gesagt, in Ordnung, innere Funktion aufrufen.
Wir kommen zurück und sagen, hey, Zeile fünf, ich möchte nicht-lokales X verwenden.
Hmm.
Was bedeutet das?
Nun, ich möchte diese X-Variable verwenden, weil sie nicht lokal ist.
Das heißt, ich möchte keine neue X-Variable erstellen.
Ich möchte den Bereich zu meinen Eltern überspringen, meine Eltern vor Ort eingrenzen und alles mitnehmen, was Sie dort finden.
Solange es sich nicht um eine globale Variable handelt, wird jedes Elternteil dies tun.
Ich möchte das nicht lokale greifen.
Dieses X bezieht sich jetzt also auf die äußere Funktion hier.
Wenn wir also sagen, dass X gleich nichtlokal ist, weisen wir diese neue Zeichenfolge zu.
Und dieses lokale ersetzen, sodass wir beim Ausdrucken von Interaktionen nichtlokal erhalten, aber auch wenn wir das
äußere X ausgeben, haben wir diesen äußeren Geltungsbereich mit dem nichtlokalen Schlüsselwort modifiziert.
Das wird also auch nicht lokal.
Wenn ich diese Zeile entferne und auskommentieren lasse, klicke ich auf Ausführen.
Sie sehen den Unterschied, jetzt haben wir das innere nichtlokale, aber das äußere lokale wurde nicht geändert, da
dies eine neue Variable ist.
Auch hier argumentiere ich, dass dies Ihren Code tatsächlich komplizierter macht, als er sein müsste.
Es gibt also spezielle Fälle, in denen Sie dies vielleicht verwenden möchten, aber wenn Sie versuchen können, Ihren Code
vorhersehbar zu machen, wo Sie die Verwendung von Dingen wie nicht-lokal und global vermeiden können, wohlgemerkt, gibt es sie aus einem bestimmten Grund,
weil sie in manchen Fällen nützlich sind Situationen.
Denken Sie jedoch daran, Ihren Code vorhersehbar zu machen, Ihren Code sauber zu machen, und wir sehen uns im
nächsten Video.