经常在python函数中看到这两个参数:*args和**kwargs,它们有什么用,又有什么区别呢。
def test_args_kwargs(a,*args,**kwargs):
print(a)
print('args:',args)
print('kwargs',kwargs)
输出结果如下:
test_args_kwargs(1,'qubit',['flux qubit','xmon'],T1=100,T2=1000)
1
args: ('qubit', ['flux qubit', 'xmon'])
kwargs {'T1': 100, 'T2': 1000}
可以看出args返回的是一个tuple,kwargs返回的是一个字典。
所以函数参数中的*args是一个tuple,表示函数可以接收多个无名参数,参数类型任意;*kwarg是一个dict,表示函数可以接收多个关键字参数,即键值对