class Func:

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

def __call__(self, *args):
    return self._func(*args)

def __add__(self, other):

    def result(*args):
        return self._func(*args) + other(*args)
return Func(result)
__radd__ = __add__

def __mul__(self, other):

    def result(*args):
        return self._func(*args) * other(*args)
return Func(result)
__rmul__ = __mul__
Programmatically create arithmetic special methods in Python, (aka factory function HOWTO)