1. 程式人生 > 其它 >python *args引數 和 **kwargs引數

python *args引數 和 **kwargs引數

*args和**kwargs都是用於函式定義時的功能性標識,其主要作用是引數傳遞。

一、*args的用法

定義函式時,將*args放在引數列表中,呼叫時直接放入多個數值,輸出結果和類別:

def function(*args):
    print(args, type(args))

function(1,2,3,4,5)

輸出結果為:(1, 2, 3, 4, 5) <class 'tuple'>;多個輸入值將會以元組的形式傳入函式。

二、**kwargs的用法

這個呼叫時放置的是很多鍵值對,例項:

def function(**kwargs):
    print(kwargs,type(kwargs))

function(a=1, b=2, c=3)

輸出結果為:{'a': 1, 'b': 2, 'c': 3} <class 'dict'>;以鍵值對的方式封裝為字典,供函式內部使用。

三、*args和**kwargs一起使用

很多內建函式都是一起使用這兩個,功能也顯而易見:先讀確定引數,剩下的引數項做為元組傳入,最後的鍵值對做為字典傳入。

def function(arg,*args,**kwargs):
    print(arg,args,kwargs)

function(6,7,8,9,a=1, b=2, c=3)

輸出結果:6 (7, 8, 9) {'a': 1, 'b': 2, 'c': 3}