2017-12-08 5 views
3

私は機能のdefinationありますオブジェクトをパラメタとして関数に渡すにはどうすればよいですか?

def setup(self, **kwargs): 
    pass 

など、これを呼び出す:

params = { 
     "advert_id": adv_id, 
     "enabled": True, 
     "from_hour": 2, 
     "to_hour": 1, 
     "interval": 0, 
     "weekdays": [1] 
    } 

setup(params) 

を私はオブジェクトとしてparamsを渡そうとしましたが、それは動作しません。

setup(advert_id=1,enabled=True,from_hour=3,to_hour=4,interval=0,weekdays=[]) 

とにかく、私はすべてのパラメータを列挙し、オブジェクトに梱包したくしたくない:私は、正しい方法がある知っています。関数呼び出しの

答えて

3

開梱params

def setup(self, **kwargs): 
    pass 
params = { 
    "advert_id": adv_id, 
    "enabled": True, 
    "from_hour": 2, 
    "to_hour": 1, 
    "interval": 0, 
    "weekdays": [1] 
} 

setup(**params) 
+0

はジャスト機能でparams' ''前に** '追加しますか? – Alice

+0

@Aliceが正しい。ちょうどコードで指定された通りです。 – Ajax1234

+0

'**'はあなたの '** kwargs'に合わせた辞書のアンパックです(他のすべてのキーワード引数を展開します。この場合は全てキーワード引数です) – TemporalWolf

関連する問題