これは私のコードです。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
?