擅长:python、mysql、java
<p>如果你真的想对这样的高阶函数使用操作符,你可以为它做一个装饰器。在</p>
<pre><code>class AddableFunction:
'''
Function decorator that lets (f+g)(x) = f(x) + g(x).
'''
def __init__(self, function):
self._function = function
def __call__(self, *args, **kwargs):
return self._function(*args, **kwargs)
def __add__(self, other):
return AddableFunction(lambda *args, **kwargs: self(*args, **kwargs) + other(*args, **kwargs))
@AddableFunction
def f(x):
return x ** 2
@AddableFunction
def g(x):
return x ** 3
print((f + g)(1)) # 2
print((f + g)(2)) # 12
print((f + g)(3)) # 36
</code></pre>