class foo(object):
def __init__(self,f):
self.f = f
def __call__(self,args_list):
def wrapped_f(args_list):
return [self.f(*args) for args in args_list]
return wrapped_f(args_list)
if __name__=='__main__':
class abc(object):
@foo
def f(a,b,c):
return a+b+c
a = range(5)
b = range(5)
c = range(5)
data = list(zip(a,b,c))
print(abc.f(data))
我几年前写过这个。当你用@foo
修饰任何函数f(X)
时,它变成了f(list of Xs)
。
这个过程叫什么?它是什么?它的函数式编程名称是什么?
这不是柯里化。我知道简单的map9(f,list of Xs)
也可以做到这一点。
在数学上,装饰器/装饰操作被称为什么?