Python - применение команды к функции в функционале toolz.pipe - PullRequest
0 голосов
/ 31 мая 2019

Я хочу использовать функцию, которая принимает некоторые аргументы в 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_), которую я пропустил?

...