Python中的*args和**kwargs

*args表示的是arguments**kwargs表示的是keyword arguments,他们两个叫做python中的可变参数。

注意:argskwargs可以随便修改,重点在于***,所以上述说法也可表述为*表示的是arguments**表示的是keyword arguments

他们两个之间的区别及使用场景为:

1. *args

在当传入的参数个数未知,且不需要知道参数名称时使用。

代码为:

def test(one, *args):
	print("first element is %s" %one)
	print("in args:"type(args))
	for i in args:
		print("%s" %i)

输出为:

>>>test(1,2,3,4,5)
first element is 1
in args: <class 'tuple'>
2
3
4
5

  • 第一个参数one是必须传入的形参,而后面的四个参数作为可变参数传入到了函数中,并赋值为*args
  • *args返回一个对象,这个对象是一个元组。

2. **kwargs

当传入的参数个数未知,但需要知道参数的名称时使用。

代码为:

def test_kw(one, *args, **kwargs):
	print("first element is %s" %one)
	print("in kwargs:"type(kwargs))
	for k,v in kwargs.items():
		print("%s:%s" %(k,v))

输出为:

>>>test(1,2,3,k1=4,k2=5)
first element is 1
in args: <class 'dict'>
k1:4
k2:5
  • 第一个参数one是必须传入的形参,23被作为可变参数传入到了函数中,并赋值为*args45作为位置参数传递给了k1k2
  • **kwargs返回一个对象,这个对象是一个字典。
  • 24
    点赞
  • 53
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吮指原味张

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值