1. ホーム
  2. python

[解決済み] **kwargsの目的と使い方を教えてください。[重複しています]。

2022-03-21 15:37:16

質問

にはどのような使い道があるのでしょうか? **kwargs をPythonで使うことはできますか?

ができるのは知っています。 objects.filter を渡すと、そのテーブルの **kwargs 引数で指定します。 

また、時間差の指定も可能です。 timedelta(hours = time1) ?

具体的にはどのような仕組みなのでしょうか?アンパッキング」のようなクラスなのでしょうか?例えば a,b=1,2 ?

解決方法は?

を使用することができます。 **kwargs を使用して、関数に任意の数のキーワード引数を取らせることができます ("kwargs" は "keyword arguments" を意味します)。

>>> def print_keyword_args(**kwargs):
...     # kwargs is a dict of the keyword args passed to the function
...     for key, value in kwargs.iteritems():
...         print "%s = %s" % (key, value)
... 
>>> print_keyword_args(first_name="John", last_name="Doe")
first_name = John
last_name = Doe

また **kwargs 構文は、関数を呼び出す際にキーワード引数の辞書を作成して関数に渡します。

>>> kwargs = {'first_name': 'Bobby', 'last_name': 'Smith'}
>>> print_keyword_args(**kwargs)
first_name = Bobby
last_name = Smith

Pythonチュートリアル には、素敵な例とともに、どのように動作するかの良い説明があります。

Python 3 アップデート

Python 3 の場合、代わりに iteritems() を使用します。 items()