有没有办法将Python元组扩展为函数-作为实际参数?
例如,在这里expand()
做魔术:
some_tuple = (1, "foo", "bar")
def myfun(number, str1, str2):
return (number * 2, str1 + str2, str2 + str1)
myfun(expand(some_tuple)) # (2, "foobar", "barfoo")
我知道可以将
myfun
定义为myfun((a, b, c))
,但是当然可能会有遗留代码。谢谢
最佳答案
myfun(*tuple)
完全满足您的要求。 *
运算符只是解压缩元组(或任何可迭代的),并将它们作为位置参数传递给函数。 See here for more info。
附带问题:请勿将内置类型名称(例如tuple
,list
,file
,set
等)用作标识符,这是一种可怕的做法,当您最小时,它会回来并咬住您期待它,
因此请养成积极避免使用自己的标识符隐藏内置名称的习惯。