这是我的代码。我正在观察def
函数中 args 的数据类型。
>>> 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
参数中,为什么它总是 a tuple
?