3

可変量の変数を引数として取る関数があります。some_list以下の例の内容を私にどのように伝えますかmyfunc2()

def myfunc1(*args):
    arguments = [i for i in args]
    #doing some processing with arguments...
    some_list = [1,2,3,4,5] # length of list depends on what was  passed as *args
    var = myfunc2(???)  

私が考えることができる唯一の方法は、リストまたはタプルをmyfunc2()引数として渡すことですが、おそらくもっと洗練された解決策があるので、書き直す必要がなくmyfunc2()、他のいくつかの関数があります。

4

3 に答える 3

4

argsタプルです。引数のリストに*args変換します。と同じ方法でarg定義します:myfunc2myfunc1

def myfunc2(*args):
    pass

引数を渡すには、1 つずつ渡すことができます。

myfunc2(a, b, c)

*演算子を使用したグルーパー:

newargs = (a, b, c)
myfunc2(*newargs)

または両方の手法を組み合わせて使用​​します。

newargs = (b, c)
myfunc2(a, *newargs)

**dict を名前付き引数のリストに変換する演算子にも同じことが当てはまります。

于 2013-04-11T15:57:38.537 に答える
0

どうですか:

myfunc(*arguments)

次のようなキーワード引数についても同様です。

def myfunc(*args, **kwargs):
    # pass them to another, e.g. super
    another_func(*args, **kwargs)
于 2013-04-11T15:47:23.713 に答える