Python中*args和**kwargs的使用

当我们需要向函数中传递不确定数量的参数时,那么可以使用*args和**kwargs这两个变量,*args中没有key值,相当于一个参数列表,**kwargs中有key值,相当于一个参数字典。

但是我要告诉大家一个事实,写*args和**kwargs只是大家都遵守的习惯,你也可以写成*var和**vars等等。

*args的使用

*args允许你给函数传递不确定数量的参数。“不确定数量”表示你在定义函数的时候不知道调用者会传递几个参数进来。*args参数可以接受不定量的参数。下面举个例子:

def func(arg1, *argv):
  print arg1
  for item in argv:
    pirnt item

func(1, 'from here...', '2', '3', '4')
# output
1
from here...
2
3
4
**kwargs的使用

**kwargs允许你传递不确定数量的参数,并且每个参数是带key值的。下面举个例子:

def func(**kwargs):
  if kwargs is not None:
    for key, value in kwargs.iteritems():
      print key, value

func(name='john')
# output
name john
使用args和*kwargs来调用一个函数

假设,存在以下这样一个需要调用的函数:

def test(arg1, arg2, arg3):
  print "arg1: ", arg1
  print "arg2: ", arg2
  print "arg3: ", arg3

接下来我们使用*args和**kwargs来给这个函数传递参数,如下:

args = ("two", '1', '2')
test(*args)

#output
args1 : two
args2: 1
args3: 2

kwargs = {"arg3" : 3, "arg2" : "two", "arg1" : 5}
test(**kwargs)

#output
arg1: 5
arg2: two
arg3: 3
*args和**kwargs以及普通参数之间的使用顺序

如果你需要在一个函数中同时传递*args,**kwargs和普通参数,那么它们必须遵循以下传递规则:

func(fargs, *args, **kwargs)

转载于:https://my.oschina.net/u/3579120/blog/1533526

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值