今天在学习代码的过程中遇见了一个函数
func(x)(x)
不懂是什么意思,于是学习了一下。
形似上面这样的语句,其实就是func(x)的返回值还是一个函数,这个函数是func内定义的函数,返回的函数直接调用第二个括号内的实参进行运算。
举个栗子:
def func1(x):
print('this is func1{0}'.format(x))
def func2(x):
print('this is func2{0}'.format(x))
return func2
>>> func(1)(2)
>>> this is func11
>>> this is func22
函数在执行func1(1)后打印了this is func11,并返回func2,紧接着,func2(2)执行,打印this is func22.这便是func()()的用法。
也可以实现不同函数的连续使用:
举个栗子:
def func(x):
print("here is func{0}".format(x))
return 0
def func1(x):
print("this is func1{0}".format(x))
return func
>>> func1(1)(1)
>>> this is func11
>>> here is func1
>>>
>>> 0