‫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 Umfang zu meinen Eltern hochspringen, meine Eltern vor Ort untersuchen 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.