【2021-8-02总结】Python中*args与**kwargs拆包与装包

本文详细介绍了Python中的*args和**kwargs在函数调用和定义时的作用,包括参数传递时的拆包、定义函数时的装包,以及它们在装包拆包综合应用中的示例,帮助理解这两种特殊语法在处理不定长参数时的功能。
摘要由CSDN通过智能技术生成

目录

一.调用函数的时候用*args作为参数传递:拆包

二.调用函数的时候用**kwargs作为参数传递:拆包

三.*args用于定义函数:装包

四.**kwargs用于定义函数:装包

五.装包拆包综合应用


python中很多参数传递或者函数定义的时候用到了*args和**kwargs这样形式的符号,*args和**kwargs究竟有何作用呢。用于不同位置作用肯定不相同,让我们分开来看一看。


一.调用函数的时候用*args作为参数传递:拆包

1.*args用于参数传递的作用

*args用于参数传递,作用是对元祖或者列表进行拆包(解包)。

2.拆包是什么意思

元祖或者列表可以当成一个整体作为一个参数传递给调用的函数,也可以把元祖或者列表中的每一个元素作为参数传递给函数。把每一个元素作为参数我们可以叫做拆包。

让我们来看看如下的例子理解一下*args:

t=(1,2,3,4)
print(t)    
#print(t)的运行结果为(1, 2, 3, 4)
print(*t)   
#print(*t)的运行结果为1 2 3 4

从这个例子我们获取到一个信息:如果t是一个元祖,*t取出了元祖中所有的元素。

让我们再来看一个*args作为参数传递的例子:

#定义一个cb函数,调用时需要传递四个参数
def cb(a,b,c,d):
    print(a+b+c+d)

t=(1,2,3,4)
#*t作为参数传递给cb函数
cb(*t)

#运行结果为:10

 从这个例子可以看出函数cb调用时需要四个参数的,直接把*t作为参数传递是OK的,说明*t的作用就是把元祖(1,2,3,4)中的四个元素拆成四个参数来传递,这个过程就是拆包。


二.调用函数的时候用**kwargs作为参数传递:拆包

理解了上面的*args作为参数传递后,**kwargs作为参数传递也是类似的,不同点就是**kwargs是对字典的拆包。

直接来看一个例子:

#定义一个cb2函数,调用时需要传递四个参数
def cb2(a,b,c,d):
    print(a+b+c+d)

d={"a":1,"b":2,"c":3,"d":4}
#**d作为参数传递给cb2函数,等价于cb2(a=1,b=2,c=3,d=4)
cb2(**d)

#运行结果为:10

这个例子可以看出**d可以直接作为参数来传递,相当于把字典中的键值对拆包成了key=vaule的形式来传递:cb2(**d)等同于cb2(a=1,b=2,c=3,d=4)


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值