1. 程式人生 > >python *和**在不同場景下不同 的作用

python *和**在不同場景下不同 的作用

**兩個乘號就是乘方,比如2**4,結果就是2的4次方,結果是16
一個乘號*,如果運算元是兩個數字,就是這兩個數字相乘,如2*4,結果為8
*如果是字串、列表、元組與一個整數N相乘,返回一個其所有元素重複N次的同類型物件,比如"str"*3將返回字串"strstrstr"

如果是函式定義中引數前的*表示的是將呼叫時的多個引數放入元組中,**則表示將呼叫函式時的關鍵字引數放入一個字典中
如定義以下函式
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)