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