python的动态参数*与**

2019-12-17  本文已影响0人  鱼豆腐爱好者协会会长

python中,在形参前面加上“*”与“”“**”,称为动态参数

加“*”时,函数可接受任意多个参数,全部放入一个元祖中

加“**”时,函数接受参数时,放入字典中

===============================================

def F(*args):

    print(args)

li = [11,22,33,44]

F(li)

F(*li)

# ([11, 22, 33, 44],)

# (11, 22, 33, 44)

===============================================

def F(**kwargs):

    print(kwargs)

li = {"k1":1,"k2":2}

F(k=li)

F(**li)

# {'k': {'k2': 2, 'k1': 1}}

# {'k2': 2, 'k1': 1}

===============================================

def F(p,*args,**kwargs):

    print(p)

    print(args)

    print(kwargs)

F(11,"abc",[789],k1=123,k2="456")

# 11

# ('abc', [789])

# {'k1': 123, 'k2': '456'}

带一个星号(*)参数的函数传入的参数存储为一个元组(tuple);

而带两个星号(*)参数的函数传入的参数则存储为一个字典(dict)

由于传入的参数个数不定,所以当与普通参数一同使用时,必须把带星号的参数放在最后

上一篇下一篇

猜你喜欢

热点阅读