需要用到面向对象里的__init__,__call__,__str__三种魔法函数,可以跟JavaScript一样完美的柯里化
class add:
def __init__(self, *args):
self.value = sum(args)
def __call__(self, *args):
self.value += sum(args)
return self
def __str__(self):
return str(self.value)
if __name__ == '__main__':
print(add())
# 0
print(add(1)(2))
# 3
print(add(1, 2)(3)(4))
# 10
print(add()(1, 2)(3, 4)()(5)(6, 7, 8)(9, 10)())
# 55