解包函数参数[重复]
- 2025-02-18 09:24:00
- admin 原创
- 26
问题描述:
如果一个函数接受 n 个参数,而另一个函数返回一个包含 n 个项目的序列(或者我有一个包含 n 个项目的序列),那么有没有办法“映射”这两个函数(或者让第一个函数接受包含 n 个项目的序列作为输入并返回结果)我不想(在某些情况下可能无法做到)自己编辑函数并更改其参数参数和返回值类型。
IE)
def func1(x, y, z):
return x+y+z
def func2(w):
return [i for i in range(w,w+3)]
在这种情况下不能func1(func2( ... ))
。
解决方案 1:
您正在寻找*args
参数语法:
>>> def foo(bar, baz, spam):
... print bar, baz, spam
...
>>> arguments = [1, 2, 3]
>>> foo(*arguments)
1, 2, 3
当将参数传递给可调用函数时,任何以星*
号开头的表达式都将被解释为位置参数序列,并扩展为作为单独的参数传递给被调用对象(函数、方法等)。
对于你的例子来说,那将是:
func1(*func2(...))
有一个使用**
双星号(采用映射)的等效关键字,您也可以在函数签名中使用相同的语法。
有关调用表达式,请参阅文档;有关函数签名镜像语法,请参阅函数定义,请参阅文档。
解决方案 2:
这被称为参数解包,其写法如下:
func1(*func2(...))
参考:https ://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists
相关推荐
热门文章
项目管理软件有哪些?
- 2025年20款好用的项目管理软件推荐,项目管理提效的20个工具和技巧
- 2024年开源项目管理软件有哪些?推荐5款好用的项目管理工具
- 2024年常用的项目管理软件有哪些?推荐这10款国内外好用的项目管理工具
- 项目管理软件有哪些?推荐7款超好用的项目管理工具
- 项目管理软件有哪些最好用?推荐6款好用的项目管理工具
- 项目管理软件哪个最好用?盘点推荐5款好用的项目管理工具
- 项目管理软件排行榜:2024年项目经理必备5款开源项目管理软件汇总
- 项目管理必备:盘点2024年13款好用的项目管理软件
- 项目管理软件有哪些,盘点推荐国内外超好用的7款项目管理工具
- 2024项目管理软件排行榜(10类常用的项目管理工具全推荐)
热门标签
云禅道AD