Я хочу использовать функцию, которая принимает некоторые аргументы в toolz.pipe, но ввод данных - это кортеж.Я знаю, как ее решить, но я думаю, что должно быть какое-то решение во встроенных библиотеках python или в toolz, я просто не смог его найти.
Пример:
def my_func(a, b):
return a + b
result = pipe(
(10, 20),
my_func,
...,
)
Для тех, кто не знаком с toolz
, pipe
это что-то вроде:
def pipe(val, *functions):
data = val
for fn in functions:
data = fn(data)
return data
Что я пробовал:
Я знаю, как решить эту проблему, например, таким образом:
result = pipe(
(10, 20),
lambda x: my_func(*x),
...,
)
Но я нахожу это уродливым, и я хотел бы иметь возможность использовать какую-то функцию apply
, которая инкапсулирует эту лямбду.Я определил свой apply_
следующим образом:
def apply_(func):
return lambda x: func(*x)
result = pipe(
(10, 20),
apply_(my_func),
...,
)
Но это кажется чем-то таким базовым, я почти уверен, что оно должно существовать во встроенных библиотеках python или в пакете toolz
..
Вопрос:
Существует ли какая-либо форма оболочки apply
, как я описал выше (apply_
), которую я пропустил?