Nested Functions vs. Closures in Python
While nested functions in Python superficially resemble closures, they are fundamentally distinct due to a key difference:
Nested Functions as Nicht-Schlüsse
verschachtelte Funktionen in Python werden nicht als Schließungen angesehen, weil sie nicht die folgende Anforderung erfüllen:
def make_printer(msg): def printer(): print(msg) return printer
andererseits, die folgende benachteiligte Funktion, die einen Standardparameterwert verwendet, ist keine Schließung:
def dad make_gin (msg): Def -Drucker (msg = msg): Druck (MSG) Rückgabe drucken
In diesem Fall ist die variable msg an den Standardwert gebunden, wenn der Drucker erstellt wird, und es verweist keine Variablen außerhalb seines eigenen Umfangs. Daher ist es keine Schließung.
schlussfolgerung
verschachtelte Funktionen in Python, die nicht der Abschlussdefinition entsprechen, werden allgemein als "verschachtelte Funktionen" bezeichnet, um sie von echten Schließungen zu unterscheiden. Verschlüsse können nützlich sein, um den Zustand der Einschließung von Scopes beizubehalten, während nicht geschachtelte Funktionen die Funktionalität in einem lexikalischen Bereich einfach zusammenfassen.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