Я просмотрел все, но это сложная тема для поиска без большого количества шума. Я хочу сделать что-то вроде этого:
def f(arg):
return arg * arg
def add(self, other):
return self * other
f.__add__ = add
cubefunction = f + f
Но я получаю ошибки при назначении функции куба, например:
TypeError: unsupported operand type(s) for +: 'function' and 'function'
В Python невозможна функциональная алгебра или я просто делаю глупую ошибку?
edit: много позже, Я читал официальное введение Python к функциональному программированию ( http://docs.python.org/howto/functional.html ), и внизу он ссылается на сторонний пакет «функционал» ( http://oakwinter.com/code/functional/documentation/), который может составлять функции, например:
>>> from functional import compose
>>> def add(a, b):
... return a + b
...
>>> def double(a):
... return 2 * a
...
>>> compose(double, add)(5, 6)
22