python函数参数中的*args,**kwargs是什么意思

python函数参数中的*args, **kwargs是什么意思:

你可能会想到c语言中的int main(int argc, char const *argv[]),但这二者意思完全不同。c语言的int main(int argc, char const *argv[])在我另一篇文章中有讲到,是为了确定传入参数个数和参数名称的,且是main函数特有的。

而在Python中,*args 和 **kwargs 是用来处理函数定义中可变数量的参数的特殊语法:

*args 用于传递非关键字参数列表(位置参数),它允许将不定数量的参数作为元组传递给一个函数。当函数被调用时,这些参数会被打包进一个元组中。例如:

def my_function(*args):
    print(args)

my_function(1, 2, 3)

输出:
(1,2,3,)

****kwargs 用于传递关键字参数(键值对)**,它允许将不定数量的关键字参数作为字典传递给一个函数。当函数被调用时,这些参数会被打包进一个字典中。例如:

def my_function(**kwargs):
    print(kwargs)

my_function(a=1, b=2, c=3)

输出:
{'a':1,'b':2,'c':3}

如果*args, **kwargs一起用, 则示例如下:

def my_function(*args,**kwargs):
    print(kwargs)

my_function(1, b=2, c=3)

输出:
(1,)
{'b':2,'c':3}

那么你可能会问my_function(1, b=2, 3)会输出什么,答案是会报错,因为python规定位置参数不能在关键字参数后面

当然c语言中也有类似的传入参数个数不固定的情况,是通过导入stdarg.h库解决的,具体可看我另一篇文章。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值