0

kwargsには、method1に渡されるものとまったく同じ内容をmethod2に含める必要があります。この場合、「foo」はmethod1に渡されますが、任意の値を渡して、method1とmethod2の両方のkwargsでそれらを確認したいと思います。method2の呼び出し方法で別の方法で行う必要があることはありますか?

def method1(*args,**kwargs):

    if "foo" in kwargs:
        print("method1 has foo in kwargs")

    # I need to do something different here
    method2(kwargs=kwargs)

def method2(*args,**kwargs):

    if "foo" in kwargs:
        # I want this to be true
        print("method2 has foo in kwargs")

method1(foo=10)

出力:

method1 has foo in kwargs

必要な出力:

method1 has foo in kwargs
method2 has foo in kwargs

何を求めているのかを明確にする必要がある場合、またはそれが不可能な場合はお知らせください。

4

3 に答える 3

3

キーワードの拡張。

method2(**kwargs)
于 2012-02-18T03:11:13.980 に答える
2
def method1(*args,**kwargs):
    if "foo" in kwargs:
        print("method1 has foo in kwargs")

    method2(**kwargs)
于 2012-02-18T03:10:58.330 に答える
1

これは、引数リストの解凍と呼ばれます。python.orgのドキュメントはこちらです。あなたの例では、このように実装します。

def method1(*args,**kwargs):      
    if "foo" in kwargs:         
        print("method1 has foo in kwargs")      

    # I need to do something different here     
    method2(**kwargs) #Notice the **kwargs.  

def method2(*args,**kwargs):      
    if "foo" in kwargs:         # I want this to be true         
        print("method2 has foo in kwargs")  

method1(foo=10)
于 2012-02-18T03:15:44.550 に答える