Как добавить функции

Я просмотрел все, но это сложная тема для поиска без большого количества шума. Я хочу сделать что-то вроде этого:

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

8
задан user318904 2 March 2011 в 19:06
поделиться