Python *arg **kwarg

函数定义时传*arg /**kwarg(收集参数)

  • 函数传入*arg
def print_params(title, *arg):
    print title
    print arg

测试一下:

>>> print_params('params', 1, 2)
params
(1, 2)

Explain:(1,2)是元组的形式;函数的位置参数为*arg,说明函数接受的是一个元组。

  • 函数传入**kwarg
def print_params(**kwarg):
    print kwarg

测试一下:

>>> print_params(x=1, y=2)
{'y': 2, 'x': 1}

Explain:{‘y’: 2, ‘x’: 1}是字典的形式,因此函数的关键字参数为**kwarg,说明函数接收的是一个字典

调用函数时传入*arg/**kwarg(分割参数)

  • 调用函数时,传参为*arg
>>> def add(x, y): return x + y
... 
>>> params = (1, 2)
>>> add(*params)
3

Explain:*params作为参数传递给add(),并且获得了1+2=3的结果,说明*params实则是将原来的元组中的元素(1, 2)取出来,传递给了add,相当于是add(1, 2)。(上例中params为元组,若为列表与上同)

  • 调用函数时,传参为**kwarg
>>> def hello_world(greeting='Hello', name='world'): print '%s, %s' % (greeting, name)
... 
>>> params = {'name': 'Lily', 'greeting': 'Well met'}
>>> hello_world(**params)
Well met, Lily

Explain:与传参为*arg时相同,相当于是hello_world(name=’Lily’, greeting=’Well met’)

优点:在调用函数的时候,简化了参数传递的过程。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值