*args和 **kwargs的兩大重要知識點:裝包與解包
1、*args是用于接收多余的未命名參數(shù),**kwargs用于接收形參中的命名參數(shù),其中args是一個元組類型,而kwargs是一個字典類型的數(shù)據(jù);
2、*args是把元組中的數(shù)據(jù)進行拆包,也就是把元組中的數(shù)據(jù)拆成單個數(shù)據(jù);**kwargs是把字典中的數(shù)據(jù)進行拆包,也就是把字典中的數(shù)據(jù)拆成單個鍵值對;

圖片.png
下面是上面程序的輸出結(jié)果:

圖片.png
理解這段代碼需要把握住下面幾點:
1.形參中的*args其實真正接收數(shù)據(jù)的args,它是一個元組,把傳進來的數(shù)據(jù)放在了args這個元組中。
- 函數(shù)體里的args依然是那個元組,但是*args的含義就是把元組中的數(shù)據(jù)進行拆包,也就是把元組中的數(shù)據(jù)拆成單個數(shù)據(jù)。
**kwargs與上述*args同理。

圖片.png

圖片.png