2

のタプルを返す関数があります

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

合計10個の引数(自己を含む)を必要とするクラスもあります

タプルがクラス内の引数にデータを入力できるようにしたいのですが、

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 に答える