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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月16日 01时20分36秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
Java笔记-使用RabbitMQ的Java接口生产数据并消费
2019-04-27
C/C++笔记-使用RabbitMQ的C接口生产数据并消费
2019-04-27
Spring Boot---(10)SpringBoot整合RabbitMQ
2019-04-27
Tomcat配置文件server.xml详解
2019-04-27
利用ConstantState判断两张图片是否为drawable中同一张图片
2019-04-27
MySQL数据库实操教程(01)——MySQL数据库安装
2019-04-27
Android获取移动设备IP地址
2019-04-27
自定义Application使用示例——几个Activity共同操作某个变量
2019-04-27
Android借助Application重写App的Crash(简易版)
2019-04-27
Android借助Application重写App的Crash(完整版)
2019-04-27
获取异常的详细信息
2019-04-27
代码中设置TextView字体加粗
2019-04-27
Android去除系统自带动画的两种方法
2019-04-27
Android中POST请求代码
2019-04-27
Android利用广播监听设备安装和卸载应用程序
2019-04-27
Android利用广播监听按下HOME和RECENT_APPS键
2019-04-27
服务(Service)全解析(六)--避免被系统回收的Service
2019-04-27
log4j配置详解
2019-04-27
服务(Service)全解析(五)--前台Service
2019-04-27