我發現PYTHON新手在理解*args和**kwargs這兩個魔法變量的時候有些困難。他們到底是什么呢?
首先,我先告訴大家一件事情,完整地寫*args和**kwargs是不必要的,我們可以只寫*和**。你也可以寫*var和**vars。寫*args和**kwargs只是一個大家都遵守的習慣。那現在讓我們從*args講起。
*args的使用
*args和**kwargs允許你在給函數傳不定數量的參數。“不定量”意味着你在定義函數的時候不知道調用者會傳遞幾個參數進來。*args能夠接收不定量的非關鍵字參數。下面這個例子能夠說明這一點:
這個例子產生的結果為:
這樣應該解釋得比較清楚了,下面,我們來看**kwargs
**kwargs允許你傳遞不定量個關鍵字參數。如果你需要在函數中定義不定量個命名參數,那么你就要**kwargs了。
下面這個例子來演示這種用法
這個例子中我們處理了一些關鍵字參數。這是**kwargs的基本用法,可以看出**kwargs很有用。接下來讓我們說明使用*args和**kwargs來在調用函數時,給函數傳遞“一個列表的參數”,或者“一個字典的參數”。
使用*args和**kwargs來調用一個函數
下面我們介紹如何使用*args和**kwargs來調用一個函數,假設你有這樣一個函數。
下面我們使用*args和**kwargs來給這個函數傳遞參數,我們可以這樣做:
*args和**kwargs以及普通參數的使用順序
如果你想同時使用這三種參數,那么它們之間的順序是