20

これは私が探しているものです:

def __init__(self, *args):
  list_of_args = #magic
  Parent.__init__(self, list_of_args)

* argsを単一の配列に渡す必要があるので、次のようになります。

MyClass.__init__(a, b, c) == Parent.__init__([a, b, c])
4

3 に答える 3

28

魔法すぎるものはありません:

def __init__(self, *args):
  Parent.__init__(self, list(args))

の内部で__init__は、変数argsは渡された引数を持つ単なるタプルです。実際Parent.__init__(self, args)、リストである必要がない限り、おそらく使用することができます。

ちなみに、を使用するsuper()ことをお勧めしParent.__init__()ます。

于 2013-03-18T23:51:38.410 に答える
5

これを扱うsentdexチュートリアルで私が拾ったこのコードがあります:

https://www.youtube.com/watch?v=zPp80YM2v7k&index=11&list=PLQVvvaa0QuDcOdF96TBtRtuQksErCEBYZ

これを試して:

def test_args(*args):
    lists = [item for item in args]
    print lists

test_args('Sun','Rain','Storm','Wind')

結果:

['太陽'、'雨'、'嵐'、'風']

于 2017-07-29T09:09:54.843 に答える
0

@simonのソリューションと同じ方向で何かを探している場合は、次のようにします。

def test_args(*args): lists = [*args] print(lists) test_args([7],'eight',[[9]])

結果:

[[7]、'8'、[[9]]]

于 2019-11-01T11:50:14.600 に答える