Документация Python 3.2 относится к Модуль Collin Winter functional
, который содержит функцию compose
:
Функция compose() реализует композицию функции. В других слова, он возвращает обертку вокруг внешних и внутренних вызываемых объектов, таких как что возвращаемое значение из внутреннего источника подается непосредственно на внешний.
К сожалению, этот модуль не обновлялся с июля 2006 года; Интересно, есть ли какая-нибудь замена.
На данный момент мне нужна только функция compose
. Является ли следующее исходное определение functional.compose
еще полезным для Python 3?
def compose(func_1, func_2, unpack=False):
"""
compose(func_1, func_2, unpack=False) -> function
The function returned by compose is a composition of func_1 and func_2.
That is, compose(func_1, func_2)(5) == func_1(func_2(5))
"""
if not callable(func_1):
raise TypeError("First argument to compose must be callable")
if not callable(func_2):
raise TypeError("Second argument to compose must be callable")
if unpack:
def composition(*args, **kwargs):
return func_1(*func_2(*args, **kwargs))
else:
def composition(*args, **kwargs):
return func_1(func_2(*args, **kwargs))
return composition
Этот вопрос qaru.site/info/282214/... несколько связан; он спрашивает, должен ли Python поддерживать специальный синтаксис для compose
.