首页 > 其他分享 >关于不定长位置实参的使用具体说明

关于不定长位置实参的使用具体说明

时间:2023-02-27 19:22:32浏览次数:55  
标签:位置 解包 func kwargs 实参 不定 字典

函数参数为不定长位置实参时,会接收不定长位置实参,实际上是将多余的位置实参以字典的形式包在一起,传入kwargs,此时输出的结果kwargs才是字典,** 为进行打包的动作
但如果对输入的kwargs进行一级解包,给不定长位置实参的字典解包,将会得到字典的key的值,如果对kwargs 进行二级解包,

def func(**kwargs):
    print(kwargs) # {'a': 1, 'b': 2, 'c': 3}
    print(*kwargs) # a b c

func(a=1,b=2,c=3)
func(**{'x': 3, 'y': 2, 'z': 3})
此时如果在不定长实参中,使用了**对传入的字典进行解包,其本质就是传入了字典

解包字典后,将数据存放在** kwargs里面,但是传入的不定长实参被打包成的字典是不能被二级解包的,如果要改变字典的键,则报错

func(**{((1,2),(3,4)): 1, 'y': 2, 'z': 3})
TypeError: keywords must be strings

标签:位置,解包,func,kwargs,实参,不定,字典
From: https://www.cnblogs.com/mrsphere/p/17161556.html

相关文章