Enthüllung von Abschlüssen: Eine vereinfachte Erklärung
Im Bereich der Programmierung tauchen Abschlüsse oft als verwirrendes Konzept auf. Ziel dieses Artikels ist es, diese rätselhaften Entitäten zu entmystifizieren, ihre Essenz zu entwirren und ihren Nutzen zu beleuchten, insbesondere innerhalb des Python-Ökosystems gehört zu Python und ist eine außergewöhnliche Funktion, die die Superkraft mit sich bringt, sich an die Umgebung zu „erinnern“, in der sie geboren wurde. Dies bedeutet, dass ein Abschluss beim Aufrufen Zugriff auf die Variablen und Daten hat, die zu Beginn vorherrschten, auch wenn diese Elemente aus dem Gültigkeitsbereich verschwunden sind.
Praktische Implikationen und Verwendung
Die Fähigkeit eines Verschlusses, seine Umgebung „einzufrieren“, eröffnet eine Vielzahl von Möglichkeiten:
Erhaltung des Zustands:
Verschlüsse sind von unschätzbarem Wert, wenn wir sie aufrechterhalten müssen und Variablen über mehrere Funktionsaufrufe hinweg manipulieren.def make_counter(): ich = 0 def counter(): nichtlokales i ich = 1 Rückkehr i return counter
Hier generiert make_counter einen Funktionszähler, der mit der Kraft des Abschlusses geschmückt ist. Diese Funktion erhöht beim Aufruf die interne Variable i und behält ihren Wert bei, obwohl kein direkter Zugriff auf den Bereich der umschließenden Funktion besteht.Wenn wir mehrere Instanzen des Zählers instanziieren (wie in c1 und c2 zu sehen), jeweils Die Instanz arbeitet mit ihrer eigenen privaten i-Variablen. Die Ausgabe von c1() und c2() wird eindeutig und unabhängig sein und den kapselnden Charakter des Abschlusses verdeutlichen.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