python引數(位置引數,預設引數,*args,**kwargs)
阿新 • • 發佈:2019-02-08
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為1,2,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為1,2,3,4都給args,即args=(3,4,5),y=5,a=6,b=7以字典形式傳給kwargs,
即kwargs={‘y’:5,’a’:6,’b’:7}