Возможно ли создать функцию, которая принимает лямбда-функции в качестве аргументов (с каждой лямбда-функцией с использованием аргумента x
), а затем возвращает новую функцию, которая имеет один аргумент x
и возвращает продукт всех лямбда-функций?Функция, возвращающая функцию (в python)
Вот мой нерабочим пример:
def func_you(lambdafunc1, lambdafunc2, lambdafunc3, lambdafunc4):
return def func_you_2(x):
return lambdafunc1(x) * lambdafunc2(x) * lambdafunc3(x) * lambdafunc4(x)
Так в основном то, что происходит, у вас есть функция, которая принимает func_you
4 лямбда-функции каждый из которых использует аргумент x
. В качестве примера аргументом для lambdafunc1
может быть что-то вроде lambda x: x + 10
.
func_you
затем возвращает новую функцию func_you_2
, выход которого является произведением всех этих функций лямбды и имеет один аргумент x
, который передается на x
аргумент каждые из функций лямбды func_you
«ы.
Предполагая, что я пытаюсь сделать, возможно, как передать правильный синтаксис для этого?
Кроме того, существует ли конкретное имя для такого рода вещей, а не «функция, возвращающая функцию»? Это технически не вложенная функция, верно?
Вы были так близко! Обратите внимание, что аргументы 'func_you' не должны быть lambdas - они могут быть любой функцией, которая принимает один аргумент и возвращает то, что законно для умножения. У Lambdas _don't_ есть особые способности, которых функции 'def' не имеют. И наоборот, лямбда может содержать только одно выражение, которое строго ограничивает то, что они делают. –