*args和**kwargs的用法

从实参角度,看*args的用法:

按位置传值,多出来的值,会被*统一接收,保存成元组的形式。并赋值给args。

*args需要放到位置参数x的后面

*args与y=1一般不会放到一起用

args=元组()

*args=*(x,y,z)

*当成位置参数看

**当成关键字来看

def foo(x,*grgs):   #args=(2,3,4,5,6,'a','b')
      print(x)
      print(args)

foo(1,2,3,4,5,6,'a','b')

 

def foo(x,y=1,*args):
	print(x)
	print(y)
	print(args)

foo(1,2,3,4,5,6,7,8) 

 *args与位置参数用

def foo(x,*args,y=1): #*args也是位置函数
	print(x)
	print(y)
	print(args)

foo(1,2,3,4,5,6,7,8,y=10)

#一般而言,*args,与y=1,不会放到一起用

  从形参的角度:把*args当成位置参数看

def foo(*args):
    print(args)
foo(1,2,3)

结果:(1,2,3)

  从实参的角度看:

def bar(x,y,z):
     print(x)
     print(y)
     print(z)
bar(*(1,2,3))


结果:
1
2
3

  

#**kwargs

把按关键字传值多余的,交给**去处理,把这部分做成字典的形式,赋值给kwargs。

def foo(x,**kwargs):
      print(x)
      print(y)

foo(x=1,y=2,a=3,b=4)
foo(x,y=2,a=3,b=4)#不能重复赋值

  

def foo(x,*args,**kwargs):
     print(x)
     print(args)
     print(kwargs)

foo(1,y=1,z=2)

#按位置放在按照关键字之前

 

 

转载于:https://www.cnblogs.com/catherine007/p/8227675.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值