*arg和**kwarg作用和参数的总结

#*arg相当于不定个数的参数元组,有时可以放在参数表的最后,把多出来的参数都归到这里。
#**kwargs相当于把多余的参数以字典的形式收集起来。
#def foo(x,*args,**kwargs):

print(x);print(args);print(kwarg);

#foo(1,2,3,4,y=1,a=2,b=3,c=4)
#结果为1 (2,3,4) {‘y’:1,‘a’:2,‘b’:3,‘c’:4}
#x叫位置参数,x与*arg与**kwarg的顺序必须是这样的,不能变。
#理解:args相当于在参数表中按照位置传值的参数;kwarg相当于按照关键字传值的参数,且kwarg中的key必须与需要的形参名对应,不多也不少且对应。
######################################################################################################################
#编程技巧:函数的参数可以为多个有时为少个时,可以把增加的参数作为有默认值的参数放入参数列表。变化大的参数放在前面,
#变化小的参数放后面。变化小的参数就可以作为默认参数。默认参数的好处是降低函数调用的难度。
#并且,无论是简单调用还是复杂调用,函数只有一个。
#注意:有默认值的参数不应该设置为数列这样可变的对象,否则多次调用,因为这个值是随着调用一直在变的,会出错。应该用str,None这样的不变值作为参数。
#如果参数可变个数,可以传入列表或元组,但是输入值要写成列表或元组的形式,太麻烦。写成
arg简洁,甚至可以表示0个参数。
#在实参前加星号也有用,可以把List或tuple变成参数列表。 **kwarg把字典改成关键字参数,kwarg为字典,实现关键字和字典的转换。
#四种参数的顺序: func(a, b, c=0, *args, **kw)这是必须的。
#对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值