编写函数add,使表达式add(1)(2)(3)……(n)()返回值是1+2+……n,用闭包函数
def add(n):
def sub(*m):
nonlocal n
if len(m)>0:
n+=m[0]
return sub
else:
return n
return sub
好问题,感觉稍微有点不够严谨。假如n=3,请参考:
>>> def add(a):
def inner_func_1(b):
def inner_func_2(c):
def inner_func_3():
return a + b + c
return inner_func_3
return inner_func_2
return inner_func_1
>>> add(1)(2)(3)()
6