2

我有一个返回元组的函数

x = (1, 2, 3, 4, 5, 6, 7, 8, 9)

我还有一门需要 10 个总 args 的课程(包括 self)

我希望元组能够填充类中的参数,但如果我只是把

y = Class(x)

它返回错误

> TypeError: __init__() takes exactly 10 arguments (2 given)

我知道可以只使用

y = Class(x[0], x[1], ... x[8])

但这似乎非常冗长。有更好的方法吗?

4

2 回答 2

9

使用星号解压缩参数列表

Class(*x)
于 2012-04-12T20:22:47.150 回答
6

你需要解压它:

>>> def foo(a, b, c, d, e, f, g, h, i, j):
...     return a
... 
>>> x = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
>>> foo(*x)
1
于 2012-04-12T20:23:24.937 回答