web-dev-qa-db-ja.com

関数のすべての引数を別の関数に渡す

関数に渡されたすべての引数(func1)をfunc2内の別の関数(func1)に引数として渡したいこれは、呼び出された*args, *kwargsfunc1で実行でき、func2に渡しますが、別の方法がありますか?

元々

def func1(*args, **kwargs):
    func2(*args, **kwargs)

しかし、私のfunc1署名が

def func1(a=1, b=2, c=3):

使用せずにそれらをすべてfunc2に送信する方法

def func1(a=1, b=2, c=3):
    func2(a, b, c)

JavaScriptのcallee.argumentsのような方法はありますか?

62
roopesh

明示的は暗黙的よりも優れていますしかし、実際にいくつかの文字を入力したくない場合:

_def func1(a=1, b=2, c=3):
    func2(**locals())
_

locals()はすべてローカル変数であるため、_func2_を呼び出す前に追加の変数を設定することはできません。設定しないと、変数も渡されます。

51
Jochen Ritzel

Func1の引数がキーワード引数のみである場合、これを行うことができます。

def func1(a=1, b=2, c=3):
    func2(**locals())
12
Kip Streithorst