1. 程式人生 > >python引數(位置引數,預設引數,*args,**kwargs)

python引數(位置引數,預設引數,*args,**kwargs)

args與位置引數和預設引數混用的情況下

示例一、(三者順序是:位置引數、預設引數、*args)(注意三者的順序)

*args:(表示引數元組)

def foo(x,y=1,*args):
    pass
foo (1,2,3,4,5) // 其中的x為1,y=1的值被2替換,3,4,5都給args,即args=(3,4,5)

示例二、(三者順序是:位置引數、*args、預設引數)

def foo(x,*args,y=1):
     pass
foo (1,2,3,4,5) // 其中的x為12,3,4,5都給args,即args=(2,3,4,5),y始終為1

**kwargs與位置引數、*args、預設引數混著用的情況下

**kwargs:(表示的就是形參中按照關鍵字傳值把多餘的傳值以字典的方式呈現)

位置引數、*args、**kwargs三者的順序必須是位置引數、*args、**kwargs,不然就會報錯:

示例三:

def foo(x,*args,**kwargs):
     pass
foo (1,2,3,4,y=5,a=6,b=7) // 其中的x為12,3,4都給args,即args=(3,4,5),y=5,a=6,b=7以字典形式傳給kwargs,

即kwargs={‘y’:5,’a’:6,’b’:7}