class FunctionalFunction(object):

    def __init__(self, func):
        self.func = func

def __call__(self, *args, **kwargs):
    return self.func(*args, **kwargs)

def __add__(self, other):

    def summed(*args, **kwargs):
        return self(*args, **kwargs) + other(*args, **kwargs)
return summed

def __mul__(self, other):

    def composed(*args, **kwargs):
        return self(other(*args, **kwargs))
return composed
triple = FunctionalFunction(lambda x: 3 * x)
times_six = triple + triple
times_six(2)
times_nine = triple * triple
times_nine(3)
Как добавить функции