为了账号安全,请及时绑定邮箱和手机立即绑定

解包函数参数

解包函数参数

Cats萌萌 2019-08-28 15:13:13
解包函数参数如果一个函数需要n个参数,并且有另一个函数返回一个包含n个项目的序列(或者我有一个包含n个项目的序列),有没有办法“映射”这两个函数(或者make第一个函数采用n个项目的序列作为输入和返回结果)我不希望(也许在某些情况下不能)自己编辑函数并更改其参数参数和返回值类型。即)def func1(x, y, z):     return x+y+zdef func2(w):     return [i for i in range(w,w+3)]func1(func2( ... ))在这种情况下不能。
查看完整描述

2 回答

?
暮色呼如

TA贡献1853条经验 获得超9个赞

您正在寻找*args参数语法:


>>> def foo(bar, baz, spam):

...     print bar, baz, spam

...

>>> arguments = [1, 2, 3]

>>> foo(*arguments)

1, 2, 3

将参数传递给callable时,任何以*asterix开头的表达式都被解释为位置参数序列,并扩展为作为被调用对象(函数,方法等)的单独参数传递。


对于你的例子,那将是:


func1(*func2(...))

使用**double asterixes(采用映射)有一个等价的关键字,你也可以在函数签名中使用相同的语法。



查看完整回答
反对 回复 2019-08-28
  • 2 回答
  • 0 关注
  • 405 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信