1. ホーム
  2. python

[解決済み] 別の関数を返す関数はどのように書けばいいですか?

2022-12-28 02:32:36

質問

Pythonで、次のような関数を書きたいと思います。 make_cylinder_volume(r) を書き、それが別の関数を返すとします。その返された関数は、パラメータ h を持つ円柱の体積を返します。 h と半径 r .

を返す方法を知っています。 の値 を返す方法は知っていますが、どうやって 別の関数 ?

どのように解決するのですか?

Pythonを使用して、これを試してみてください。

import math
def make_cylinder_volume_func(r):
    def volume(h):
        return math.pi * r * r * h
    return volume

このように使うことで、例えば radius=10height=5 :

volume_radius_10 = make_cylinder_volume_func(10)
volume_radius_10(5)
=> 1570.7963267948967

関数を返すには、関数の中に新しい関数を定義し、最後にそれを返すという単純なものであることに注意してください - それぞれの関数に適切なパラメータを渡すように注意してください。参考までに、他の関数から関数を返すというテクニックは、次のように知られています。 カーリング .