1

これは私のコードです。def関数の引数のデータ型を観察していました。

>>> def example(a,b=None,*args,**kwargs):
...   print a, b
...   print args
...   print kwargs
...
>>> example(1,"var",2,3,word="hello")
1 var
(2, 3)
{'word': 'hello'}
>>> _args = (1,2,3,4,5)
>>> _kwargs = {"1":1,"2":2,"3":3}
>>> example(1,"var",*_args,**_kwargs)
1 var
(1, 2, 3, 4, 5)
{'1': 1, '3': 3, '2': 2}

関数への実パラメータ (引数)が仮パラメータ2, 3として渡される場合。*argしたがって、引数は値による呼び出しを使用して渡されます (値は常にオブジェクトの値ではなく、オブジェクト参照です)。

*args呼び出しで、シーケンス内の各要素 (タプルまたはリスト) を個別のパラメーターに展開します。これらの個別のパラメーターは、引数に再び取り込まれ*argsます。なぜ常にtuple?

4

0 に答える 0