黑松山资源网 Design By www.paidiu.com
*args和 **kwargs是常用的两个参数
*args:用于接受多余的未命名的参数,元组类型。
**kwargs:用于接受形参的命名参数,字典类型的数据。
可变参数args:
def fun(n, *args): print(n) print(args) # 未拆包 print(*args) # 进行拆包 fun(1,2,3,4)
结果:
1 (2, 3, 4) 2 3 4
形参中的*args是接受数据的args,它是一个元组,把传入的数据放进args元组中。
函数中的args仍然是元组, *args就是将元组的数据进行拆包,一开始输入的形式。
关键字参数**kwargs
def fun(**kwargs): print(kwargs) # 未拆包 print(*kwargs) # 进行拆包 fun(a=1, b=2)
结果:
{'a': 1, 'b': 2} a b
*args用来接受多余的未命名参数, **kwargs是用来接受命名参数。
装包的意义就是把未命名的参数和命名的参数放在元组或字典中。
解包
上面介绍了args, kwargs的装包作用,起到作用的是、 这两个参数。
1. 解包的意义就是将传递给函数的一个列表,元组,字典,拆分成独立的多个元素然后赋值给函数中的参变量。
2. 解压字典有两种解发,一种用*解的只有key,一种用**解的有key,value。但是这个方法**只能在函数定义中使用。
def fun(*args, **kwargs): for arg in args: print(arg) for k, v in kwargs.items(): print(k, v) print('-'*50) fun(a, c) # 参数都赋值给args,并没有kwargs的参数 fun(*a, *c) # 解压的参数都赋值给args 等价为 1, 2, 3, 'a', 'b', 'c' fun(*a, **c) # a解压给args,c解压给kwargs 等价为 1, 2, 3, 'a'=1, 'b'=2, 'c'=3
结果:
[1, 2, 3] {'a': 1, 'b': 2, 'c': 3} -------------------------------------------------- 1 2 3 a b c -------------------------------------------------- 1 2 3 a 1 b 2 c 3
问题:
在传入参数时,可变参数(*)之前不能指定参数名
def myfun(a, *b): print(a) print(b) myfun(a=1,2,3,4) myfun(a=1,2,3,4) ^ SyntaxError: positional argument follows keyword argument
2.函数传入实参时,可变参数(*)之后的参数必须指定参数名,否则就会被归到可变参数之中
def myfun(a, *b, c=None): print(a) print(b) print(c) myfun(1,2,3,c=4) 1 (2, 3) 4
3.一个函数想要使用时必须明确指定参数名,可以将所有参数都放在可变参数之后
def myfun(*, a, b): print(a) print(b) myfun(a=1, b=2)
4.关键字参数都只能作为最后一个参数,前面的参数按照位置赋值还是名称赋值都可以
def myfun(a, *b, c, **d): print(a) print(b) print(c) print(d) myfun(1, 2, w=6, c=3, d=4, e=5) # 记住可变参数(*)之前不能指定参数名 1 (2,) 3 {'w': 6, 'd': 4, 'e': 5}
以上这篇对python中的装包与解包实例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
黑松山资源网 Design By www.paidiu.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
黑松山资源网 Design By www.paidiu.com
暂无评论...
更新日志
2024年10月07日
2024年10月07日
- 群星《前途海量 电影原声专辑》[FLAC/分轨][227.78MB]
- 张信哲.1992-知道新曲与精丫巨石】【WAV+CUE】
- 王翠玲.1995-ANGEL【新艺宝】【WAV+CUE】
- 景冈山.1996-我的眼里只有你【大地唱片】【WAV+CUE】
- 群星《八戒 电影原声带》[320K/MP3][188.97MB]
- 群星《我的阿勒泰 影视原声带》[320K/MP3][139.47MB]
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[320K/MP3][148.91MB]
- 刘雅丽.2001-丽花皇后·EMI精选王【EMI百代】【FLAC分轨】
- 齐秦.1994-黄金十年1981-1990CHINA.TOUR.LIVE精丫上华】【WAV+CUE】
- 群星.2008-本色·百代音乐人创作专辑【EMI百代】【WAV+CUE】
- 群星.2001-同步过冬AVCD【环球】【WAV+CUE】
- 群星.2020-同步过冬2020冀待晴空【环球】【WAV+CUE】
- 沈雁.1986-四季(2012梦田复刻版)【白云唱片】【WAV+CUE】
- 纪钧瀚《胎教古典音乐 钢琴与大提琴的沉浸时光》[FLAC/分轨][257.88MB]
- 《国语老歌 怀旧篇 3CD》[WAV/分轨][1.6GB]