103

make_cylinder_volume(r)Python で、別の関数を返す関数を書きたいと思います。その返された関数は、パラメータで呼び出すことができ、高さと半径hで円柱の体積を返す必要があります。hr

Python で関数からを返す方法は知っていますが、別の関数を返すにはどうすればよいですか?

4

5 に答える 5

203

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

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

たとえば、radius=10andを使用して、次のように使用しheight=5ます。

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

関数を返すことは、関数内で新しい関数を定義し、最後にそれを返すという単純な問題であることに注意してください。各関数に適切なパラメーターを渡すように注意してください。参考までに、別の関数から関数を返す手法はカリー化として知られています。

于 2013-01-11T03:17:45.697 に答える