ホームページ  >  記事  >  バックエンド開発  >  Pythonの戻り関数とは何ですか? (分析例)

Pythonの戻り関数とは何ですか? (分析例)

乌拉乌拉~
乌拉乌拉~オリジナル
2018-08-22 16:17:451697ブラウズ

次の記事では、Python の return 関数とは何かについて学びます。 Python の return 関数に関する関連知識について学びましょう。では、さっそく次の記事に入りましょう。

戻り値としての Python 関数:

関数をパラメーターとして受け入れることに加えて、高階関数は結果値として関数を返すこともできます。

変数パラメータの合計を実装してみましょう。通常、合計関数は次のように定義されます:

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

ただし、合計をすぐに合計する必要はなく、後続のコードで必要に応じて計算される場合はどうなるでしょうか?合計結果を返す代わりに、合計関数を返すことができます:

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

lazy_sum() を呼び出すと、返されるのは合計結果ではなく、合計関数です:

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

合計の結果は、関数 f が呼び出されたときに実際に計算されます。

>>> f()25

この例では、関数 sum を関数 Lazy_sum で定義し、内部関数 sum は外部関数 Layy_sum のパラメータを参照でき、ローカル変数. Lazy_sum が関数の合計を返すとき、関連するパラメータと変数は返された関数に保存されます. この「クロージャ」と呼ばれるプログラム構造は大きな力を持っています。

もう 1 つ注意してください。lazy_sum() を呼び出すと、たとえ同じパラメータが渡されたとしても、各呼び出しは新しい関数を返します:

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

f1() と f2()呼び出しの結果は相互に影響しません。

以上がこの記事で説明する内容の全てです、この記事では主にpythonのreturn関数に関する知識を紹介しますので、上記の内容を理解するために活用していただければ幸いです。 。この記事で説明したことがあなたのお役に立ち、Python の学習が容易になることを願っています。

関連知識の詳細については、php 中国語 Web サイトの Python チュートリアル 列を参照してください。

以上がPythonの戻り関数とは何ですか? (分析例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。