def __mul__(self, other):
    return Func(lambda x: self(x) * other(x))

def __add__(self, other):
    return Func(lambda x: self(x) + other(x))

def __sub__(self, other):
    return Func(lambda x: self(x) - other(x))
Programmatically create arithmetic special methods in Python, (aka factory function HOWTO)