python中的装包与拆包
发布日期:2021-09-14 03:23:57 浏览次数:12 分类:技术文章

本文共 901 字,大约阅读时间需要 3 分钟。

1.*args

def test1(a, *args):    # 输出第一个参数a    print(a)    # args是一个元组,里面包括除了第一个参数以外的无名参数    print(args)    # *args是将args元组的每一个元素分别拿出来,然后依次打印    print(*args)test1(1, 2, 3, 4, 5)print()  # 增加分割行test1(7, (6, 5, 4, 3))

运行结果如下:

1(2, 3, 4, 5)2 3 4 57((6, 5, 4, 3),)(6, 5, 4, 3)

由此可见:args是一个元组类型,而在形参中*args代表可以接收多余的无名参数,而在实参中,*args代表将元组拆包,拆分成单个数据来使用。如果给支持参数是元组类型的函数传递一个元组,那么这个函数会把元组当做一个单独的数据存入到元组中去,拆包的过程和普通数据一样。这种可以传不定长参数的函数,可以只传参数a,因为它是必须的,后面的*args可以传递也可以不传递。

2.**kwargs

def test1(a, **kwargs):    # 输出第一个参数a    print(a)    # akwrgs是一个字典,里面包括除了第一个参数以外的有名参数    print(kwargs)    # **kwargs是将kwargs字典的每一个元素分别拿出来,一次还原成m=100,n=2    #但是**kwargs不支持打印出来    # print(**kwargs)    #对**kwargs进行拆包    test2(**kwargs)def test2(m,n):    print(m,n)test1(1,m=100,n=2)

输出结果为:

1{'m': 100, 'n': 2}100 2

总结:

*args作为形参是用来接收多余的未命名参数,而**kwargs是用来接收key=value这种类型的命名参数,args是元组,kwargs是字典。装包就是把未命名的参数放到元组中,把命名参数放到字典中。拆包就是还原最初传进来的数据样貌。

转载地址:https://blog.csdn.net/weixin_40612082/article/details/80572066 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:动态URL、静态URl、伪静态URL
下一篇:python装饰器--你绝对能掌握!

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月16日 01时20分36秒