不定長參數(shù)一:*args將實(shí)參中剩余的值都傳遞給變量args剩余的值在args中,以元組的形式保存 如圖,test函數(shù)中的3,4將會(huì)以一個(gè)元組的形式傳遞給args,具體表現(xiàn)看輸出結(jié)果第三行元組(3,4),那么函數(shù)中的*args中的星號(hào)代表什么呢?就是表示對(duì)元組進(jìn)行拆包。具體表現(xiàn)看輸出結(jié)果第四行。 不定長參數(shù)二:**kwargs沒有變量名的參數(shù),以args元組的形式保存有變量名的參數(shù),以kwargs字典形式進(jìn)行保存 如圖,test函數(shù)中的name,age將以字典的形式傳遞給kwargs,兩個(gè)星號(hào)表示對(duì)字典拆包,程序中直接對(duì)kwargs值進(jìn)行打印,可以看到kwargs是一個(gè)字典。 拆包 弄懂了*args和**kwargs我們就知道了什么是拆包 * 可以對(duì) 元祖 進(jìn)行拆包** 可以對(duì) 字典 進(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)的元素分開傳遞,我們可以對(duì)元組進(jìn)行拆包。 也就是說我們的實(shí)參必須是拆包后再進(jìn)行傳遞。**kwargs也是一樣 |
|