您可以调用这样的函数:func(x)(y)吗?

时间:2018-11-15 23:20:07

标签: python python-3.x

我知道您可以像这样调用python函数:

func(x,y,z) 

但是您可以调用这样的函数吗?

func(x)(y)

2 个答案:

答案 0 :(得分:3)

是,如果函数返回一个函数对象。例如:

def a(x):
    def b(y):
        return x + y
    return b
print(a(2)(3))

输出:5

答案 1 :(得分:-1)

这仅在创建子例程时有用

一个愚蠢的例子:

a = lambda x,y: lambda z: x+y+z
a(1,1)(3)
5

这个例子没有道理。要理解这一点,我们可以做:

 a = lambda x:lambda y:y**(1/x)
>>> a(2)(4)
2.0
>>> a(2)(16)
4.0
>>> sqrt = a(2)
>>> sqrt(4)
2.0
>>> cubert = a(3)
>>> cubert(8)
2.0