python的动态参数*与**

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)

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容