天天看點

了解 Python 中s可變參數的 *args 和 **kwargs使用預設參數的可變參數在函數定義時使用*args和**kwargs在函數調用時,使用*args和**kwargs示例注意

python是支援可變參數的,最簡單的方法莫過于使用預設參數,例如:

當然,本文主要講一種達到可變參數 (variable argument) 的方法:使用*args和**kwargs文法。其中,*args是可變的positional arguments清單,**kwargs是可變的keyword arguments清單。并且,*args必須位于**kwargs之前,因為positional arguments必須位于keyword arguments之前。

首先介紹兩者的基本用法。

下面一個例子使用*args,同時包含一個必須的參數:

下面一個例子使用*kwargs, 同時包含一個必須的參數和*args清單:

*args和**kwargs文法不僅可以在函數定義中使用,同樣可以在函數調用的時候使用。不同的是,如果說在函數定義的位置使用*args和**kwargs是一個将參數pack的過程,那麼在函數調用的時候就是一個将參數unpack的過程了。下面使用一個例子來加深了解:

使用*args和**kwargs可以非常友善的定義函數,同時可以加強擴充性,以便日後的代碼維護。

注:在定義或調用這種函數時,要遵循以下規則:

可變參數一定在不可變參數之後

*args是可變的positional arguments清單,**kwargs是可變的keyword arguments清單。并且,*args必須位于**kwargs之前,因為positional arguments必須位于keyword arguments之前