如果是函數定義中參數前的*表示的是將調用時的多個參數放入元組中,**則表示將調用函數時的關鍵字參數放入一個字典中
如定義以下函數
def func(*args):print(args)
當用func(1,2,3)調用函數時,參數args就是元組(1,2,3)
定義以下函數
def func(**args):print(args)
當用func(a=1,b=2)調用函數時,參數args將會是字典{'a':1,'b':2}
如果是在函數調用中,*args表示將可迭代對象擴展為函數的參數列表
args=(1,2,3)
func=(*args)
等價于函數調用func(1,2,3)
函數調用的**表示將字典擴展為關鍵字參數
args={'a':1,'b':2}
func(**args)
等價于函數調用 func(a=1,b=2)