不定長參數(shù)一:*args將實(shí)參中剩余的值都傳遞給變量args剩余的值在args中,以元組的形式保存
如圖,test函數(shù)中的3,4將會(huì)以一個(gè)元組的形式傳遞給args,具體表現(xiàn)看輸出結(jié)果第三行元組(3,4),那么函數(shù)中的*args中的星號(hào)代表什么呢?就是表示對元組進(jìn)行拆包。具體表現(xiàn)看輸出結(jié)果第四行。
不定長參數(shù)二:**kwargs沒有變量名的參數(shù),以args元組的形式保存有變量名的參數(shù),以kwargs字典形式進(jìn)行保存
如圖,test函數(shù)中的name,age將以字典的形式傳遞給kwargs,兩個(gè)星號(hào)表示對字典拆包,程序中直接對kwargs值進(jìn)行打印,可以看到kwargs是一個(gè)字典。
拆包
弄懂了*args和**kwargs我們就知道了什么是拆包
* 可以對 元祖 進(jìn)行拆包** 可以對 字典 進(jìn)行拆包注意事項(xiàng)
上述兩個(gè)例子中,test函數(shù)的實(shí)參分別是(1,2,3,4)和(1,2,name='f',age=18)。
那么我們直接傳遞一個(gè)元組是否可行呢。
我們發(fā)現(xiàn)元組(3,4)被當(dāng)成一個(gè)元素了。如果我們想將元組內(nèi)的元素分開傳遞,我們可以對元組進(jìn)行拆包。
也就是說我們的實(shí)參必須是拆包后再進(jìn)行傳遞。**kwargs也是一樣
聯(lián)系客服