name=value
「キーワード引数」は通常の引数とどう違うのですか?位置構文を使用する代わりに、すべての引数を として渡すことはできないのですか?
ベストアンサー1
関連する概念が 2 つあり、どちらも「キーワード引数」と呼ばれます。
他のコメント投稿者が言及しているように、呼び出し側では、関数の引数の一部を名前で指定することができます。名前のない引数 (位置引数) の後にそれらを指定する必要があり、まったく指定されていないパラメータにはデフォルト値が必要です。
もう1つの概念は関数定義側にあります。名前でパラメータを取る関数を定義できます。その名前を指定する必要さえありません。これらは純粋なキーワード引数であり、位置指定で渡すことはできません。構文は次のとおりです。
def my_function(arg1, arg2, **kwargs)
この関数に渡すキーワード引数はすべて、 という名前の辞書に配置されますkwargs
。実行時にこの辞書のキーを次のように調べることができます。
def my_function(**kwargs):
print str(kwargs)
my_function(a=12, b="abc")
{'a': 12, 'b': 'abc'}