Heim  >  Artikel  >  Backend-Entwicklung  >  Was ist eine Python-Rückgabefunktion? (Beispielanalyse)

Was ist eine Python-Rückgabefunktion? (Beispielanalyse)

乌拉乌拉~
乌拉乌拉~Original
2018-08-22 16:17:451671Durchsuche

Im folgenden Artikel erfahren wir, was die Rückgabefunktion in Python ist. Erfahren Sie mehr über das relevante Wissen über die Rückgabefunktion von Python. Kommen wir nun ohne weitere Umschweife zum folgenden Artikel.

Python-Funktion als Rückgabewert:

Neben der Annahme von Funktionen als Parameter können Funktionen höherer Ordnung auch Funktionen als Ergebniswerte zurückgeben.

Lassen Sie uns die Summierung eines variablen Parameters implementieren. Normalerweise ist die Summationsfunktion wie folgt definiert:

def calc_sum(*args):
    ax = 0
    for n in args:
        ax = ax + n    return ax

Was aber, wenn die Summe nicht sofort berechnet werden muss, sondern nach Bedarf im nachfolgenden Code berechnet wird? Anstatt das Summationsergebnis zurückzugeben, können Sie die Summationsfunktion zurückgeben:

def lazy_sum(*args):
    def sum():
        ax = 0
        for n in args:
            ax = ax + n        return ax    return sum

Wenn wir lazy_sum() aufrufen, wird nicht das Summationsergebnis zurückgegeben, sondern die Summationsfunktion:

>>> f = lazy_sum(1, 3, 5, 7, 9)
>>> f
<function lazy_sum.<locals>.sum at 0x101c6ed90>

The Das Ergebnis der Summe wird tatsächlich berechnet, wenn Funktion f aufgerufen wird:

>>> f()25

In diesem Beispiel definieren wir die Funktionssumme in der Funktion lazy_sum, und die interne Funktionssumme kann sich auf die Parameter der externen Funktion lazy_sum und beziehen Wenn lazy_sum die Funktionssumme zurückgibt, werden die relevanten Parameter und Variablen in der zurückgegebenen Funktion gespeichert. Diese Programmstruktur namens „Closure“ hat eine große Leistung.

Bitte beachten Sie noch etwas: Wenn wir lazy_sum() aufrufen, gibt jeder Aufruf eine neue Funktion zurück, auch wenn dieselben Parameter übergeben werden:

>>> f1 = lazy_sum(1, 3, 5, 7, 9)
>>> f2 = lazy_sum(1, 3, 5, 7, 9)
>>> f1==f2False

f1() und f2() Die Aufrufergebnisse beeinflussen sich gegenseitig nicht.

Das Obige ist der gesamte Inhalt dieses Artikels. In diesem Artikel wird hauptsächlich das Wissen zur Rückgabefunktion in Python vorgestellt. Ich hoffe, dass das, was ich in diesem Artikel beschrieben habe, für Sie hilfreich ist und Ihnen das Erlernen von Python erleichtert.

Weitere Informationen zu diesem Thema finden Sie in der Spalte Python-Tutorial auf der chinesischen PHP-Website.

Das obige ist der detaillierte Inhalt vonWas ist eine Python-Rückgabefunktion? (Beispielanalyse). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn