天天看點

Python進階用法2-可選參數*args和**kwargs

本文适合閱讀對象:已學完python基礎課程,并能熟練使用python基本用法程式設計。如果還有一些其他語言的基礎最好不過了,如果沒有python基礎或者正在學習中,請點選以下連結:

python基礎教程

一、有趣的*args和**kwargs

盡管*args和**kwargs參數不受重視,但其實它們是python中非常有用的特性。那麼*args和**kwargs參數到底有什麼用呢?它們能讓函數接受可選參數,是以能在子產品和類中靈活建立api,舉個栗子。

python示例代碼如下:

如上所示,test函數的寫法表明其至少需要一個參數,但也可接受額外位置參數和關鍵字參數。

args參數帶有*字首,它将收集位置參數組成元組;

kwargs參數帶有**字首,它将收集關鍵字參數組成字典;

大家可以實際調用測試下:

報錯,提示缺少1個必要參數。

Python進階用法2-可選參數*args和**kwargs

這三種調用不會報錯,輸出結果分别如下,大家看懂了嗎?

Python進階用法2-可選參數*args和**kwargs

注意,最後有一點需要說明,參數args和kwargs隻是一個命名約定,大家也可以命名成别的名字,