python参数(位置参数,默认参数,*args,**kwargs)

args与位置参数和默认参数混用的情况下:

示例一、(三者顺序是:位置参数、默认参数、*args)(注意三者的顺序)
*args:(表示参数元组)

def foo(x,y=1,*args):
    pass
foo (1,2,3,4,5) // 其中的x为1,y=1的值被2替换,3,4,5都给args,即args=(3,4,5)

示例二、(三者顺序是:位置参数、*args、默认参数)

def foo(x,*args,y=1):
     pass
foo (1,2,3,4,5) // 其中的x为1,2,3,4,5都给args,即args=(2,3,4,5),y始终为1

**kwargs与位置参数、*args、默认参数混着用的情况下
**kwargs:(表示的就是形参中按照关键字传值把多余的传值以字典的方式呈现)

位置参数、*args、**kwargs三者的顺序必须是位置参数、*args、**kwargs,不然就会报错:

示例三:

def foo(x,*args,**kwargs):
     pass
foo (1,2,3,4,y=5,a=6,b=7) // 其中的x为1,2,3,4都给args,即args=(3,4,5),y=5,a=6,b=7以字典形式传给kwargs,

即kwargs={‘y’:5,’a’:6,’b’:7}


以下是静静独角兽的三点小补充:

  1. 当函数的参数不确定时,我们可以使用*args 和**kwargs。
  2. 一般*args 无key值,**kwargs有key值。
  3. 当我们同时使用两种参数时,*args参数必须在**kwargs前,也就是说,当我们将无名参数置于关键字参数后面时,将会引发语法错误。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值