如何在Python中避免中间变量,直接将函数返回值作为多参数函数入参?
解决方案
直接用Python的解包操作符就能搞定,不用创建中间变量:
res = foo2(*foo())
原理
当你在可迭代对象(比如foo()返回的元组、列表)前加上*,Python会自动把这个对象里的元素依次拆成独立的位置参数传递给foo2,和你先赋值给a、b、c再传入的效果完全一致。
如果foo()返回的是字典,而foo2需要接收对应关键字参数的话,还可以用**解包:
# 假设foo()返回{'x':1, 'y':2, 'z':3},foo2接收x、y、z关键字参数 res = foo2(**foo())
内容的提问来源于stack exchange,提问作者user10165777
相关产品推荐
相关产品推荐

