Використовуючи лямбди, також відомі як анонімні функції, ви можете абстрагувати volume
функцію всередині make_cylinder_volume_func
до одного рядка. Нічим не відрізняючись від відповіді Оскара Лопеса, рішення з використанням лямбда-сигналу все ще в певному сенсі є "більш функціональним".
Ось як ви можете написати прийняту відповідь, використовуючи лямбда-вираз:
import math
def make_cylinder_volume_fun(r):
return lambda h: math.pi * r * r * h
А потім зателефонуйте так само, як будь-яку іншу функцію, що працює:
volume_radius_1 = make_cylinder_volume_fun(1)
volume_radius_1(1)
=> 3.141592653589793