ホームページ >バックエンド開発 >Python チュートリアル >Pythonの戻り関数とは何ですか? (分析例)
次の記事では、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 サイトの他の関連記事を参照してください。