python多个函数调用_python – 使用3个或更多参数输入字段调用函数 – function()()()...

你当然可以:

def power_times(k):

"""use as power_times(k)(x)(y) => k * y^x"""

return lambda x: lambda y: k * y**x

print power_times(2)(3)(4) # returns 2 * 4^3 = 128

当您使用参数2(power_times(2))调用此函数时,它将返回一个lambda函数,其作用类似于lambda x:lambda y:2 * y ** x(也就是说,就像您的原始函数一样,仅使用额外的“times” 2\” ).

您可以根据需要堆叠尽可能多的lambda:

def many_lambdas(x):

"""many_lambdas(x)(y)(z)(q) => x + y * z^q"""

return lambda y: lambda z: lambda q: x + y * z ** q

print many_lambdas(1)(2)(3)(4) # prints 163

事实上,如果你完全不使用def,可能会更清楚,只是写道:

many_lambdas = lambda x: lambda y: lambda z: lambda q: x + y * z ** q

或者,您也可以跳过使用lambda并将它们用作嵌套函数:

def many_funcs(x):

def many_funcs_y(y):

def many_funcs_z(z):

def many_funcs_q(q):

return x + y * z ** q

return many_funcs_q

return many_funcs_z

return many_funcs_y

print many_funcs(1)(2)(3)(4) # prints 163

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值