Python学习之*args和**kwargs

本文和大家分享的主要是python中*args和**kwargs相关内容,一起来看看吧,希望对大家 学习python 有所帮助。
  函数定义
  在Python的函数定义中使用*args和**kwargs可传递可变参数。*args用作传递非命名键值可变长参数列表(位置参数),**kwargs用作传递键值可变长参数列表。
  当你不确定你的函数里将要传递多少参数时你可以用*args.例如,它可以传递任意数量的参数,*args 示例:
  deftest_var_args(farg, *args):
  print "formal arg:", farg
  for argin args:
  print "another arg:", arg
  test_var_args(1, "two", 3)
  结果:
  formalarg: 1anotherarg: twoanotherarg: 3
  相似的,**kwargs允许你使用没有事先定义的参数名,**kwargs示例:
  deftest_var_kwargs(farg, **kwargs):
  print "formal arg:", farg
  for keyin kwargs:
  print "another keyword arg: %s: %s" % (key, kwargs[key])
  test_var_kwargs(farg=1, myarg2="two", myarg3=3)
  结果:
  formalarg: 1anotherkeywordarg: myarg2: twoanotherkeywordarg: myarg3: 3
  *args和**kwargs也可以混合使用,需要注意的是,*args需要放在**kwargs前面:
  deftest_kwargs(first, *args, **kwargs):
  print 'Required argument: ', first
  for v in args:
  print 'Optional argument (*args): ', v
  for k, v in kwargs.items():
  print 'Optional argument %s (*kwargs): %s' % (k, v)
  test_kwargs(1, 2, 3, 4, k1=5, k2=6)
  结果:
  Requiredargument:  1
  Optionalargument (*args):  2
  Optionalargument (*args):  3
  Optionalargument (*args):  4
  Optionalargumentk2 (*kwargs): 6
  Optionalargumentk1 (*kwargs): 5
  函数调用
  这种语法不仅在函数定义中可以使用,在调用函数是也会出现(相当于extract package的效果)
  *args 示例:
  deftest_var_args_call(arg1, arg2, arg3):
  print "arg1:", arg1
  print "arg2:", arg2
  print "arg3:", arg3
  args = ("two", 3)
  test_var_args_call(1, *args)
  结果:
  arg1: 1arg2: twoarg3: 3
  **kwargs示例:
  deftest_var_args_call(arg1, arg2, arg3):
  print "arg1:", arg1
  print "arg2:", arg2
  print "arg3:", arg3
  kwargs = {"arg3": 3, "arg2": "two"}
  test_var_args_call(1, **kwargs)
  结果:
arg1: 1
arg2: two
arg3: 3

来源:标点符
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值