Ich glaube, dass die meisten Studenten, die Programmieren studiert haben, mit dem Wort „Abschluss“ vertraut sind, aber manchmal ist es immer noch schwer zu verstehen. Schauen wir uns zunächst die Definition an:
Ein Abschluss ist eine Entität, die aus einer Funktion und der zugehörigen Referenzumgebung besteht. In den Referenzressourcen gibt es beispielsweise eine solche Definition: Wenn Sie tiefe Einschränkungen implementieren, müssen Sie etwas erstellen, das die Referenzumgebung explizit darstellen und mit den relevanten Unterprogrammen bündeln kann, wodurch
das resultierende Ganze entsteht Schließung genannt.
Python-Schließung (Schließung) ist eigentlich keine sehr komplizierte Sache.
Laienhaft ausgedrückt: Wenn in einer internen Funktion auf eine Variable im externen Bereich (aber nicht im globalen Bereich) verwiesen wird, dann wird die interne Funktion als Abschluss betrachtet. Es ist nichts weiter als eine „innere“ Funktion, auf die durch einen Namen (Variable) verwiesen wird, und dieser Name (Variable) ist eine lokale Variable für die „äußere“ Funktion, die sie enthält.
Nachdem Sie dies gelesen haben, verstehen Sie vielleicht immer noch nicht, was ein Abschluss ist. Es spielt keine Rolle, nachdem Sie das folgende kleine Beispiel gelesen haben.
#!/usr/bin/env python
# programming=utf-8
# http://www.pythontab.com
#Definieren Sie eine Funktion
def plus(number):
#Definieren Sie eine andere Funktion innerhalb der Funktion. Tatsächlich wird die darin enthaltene Funktion als Abschluss betrachtet
def plus_in(number_in):
#Drucken Sie hier die Variable number_in aus damit jeder klarer wissen kann, welche Variable übergeben wird
print str(number_in) "rn"
return number number_in
#Tatsächlich wird hier das Ergebnis des Abschlusses zurückgegeben
return plus_in
#Weisen Sie der Plusfunktion einen Wert zu, diese 20 ist für die Parameternummer
v1=plus(20)
print v1(100) #Hinweis dass 100 hier tatsächlich für den Parameter number_in steht
Laufergebnis:
100
120
Hinweis: 100 ist das von print gedruckte Ergebnis str(number_in) "rn"