python方法中*args与**kwargs用法简述

1. 作用

成熟的语言在设计方法时都会考虑到可变参数,例如Java1.5增加的变量前加 。而在python中可变参数的表示方式是*args与**kwargs,为何会有两个表达方式呢?答案是为了应对不同的场景。这也是人生苦短,我用python的具体表现吧。

2. 用法

2.1 *args

args用来接收没有键只有值的参数,将它们转为tuple
注意:使用
args时,必须保证方法形参列表中,args之前的参数都已经赋值,否则会串位。
例如:

def fun1(a=1, b=2, *args):
	print(a, b, args)

# 各种情况:
fun1(1,2,3) # 1, 2, (3,)
fun1(3)     # 3, 2, ()
fun1()      # 1, 2, ()

2.2 **kwargs

**kwargs用来接收有键有值得参数,将它们转为dict
方法内部则可以从tuple类型的args与dict类型的kwargs中直接取值使用。

def fun2(a=1, b=2, **kwargs):
	print(a,b,kwargs)
# 各种情况
fun2(1,2,c=3) # 1, 2, {'c'=3}
fun2()		  # 1, 2, {}

2.3 *args与**kwargs

将两者结合起来

def fun2(a=1, b=2, *args, **kwargs):
	print(a,b,args,kwargs)
# 各种情况
fun2()		  # 1, 2, (), {}
fun2(3)		  # 1, 2, (3), {}
fun2(c=4) # 1, 2, (), {'c'=4}
fun2(3, 4, c=5, d=6) # 1, 2, (3, 4), {'c'=5, 'd'=6}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值