关于python函数的可变参数*与关键字参数**

一.可变参数

定义一个接收可变参数的函数,如下:

住:enumerate方法会对一个可迭代的元素返回【序号】和【当前值】

def var_param(*num):
    for index,value in enumerate(num):
        print index,value

调用输出,解释请看代码注释

>>> a=[11,22,33]

#直接传a列表,可变参数会认为a列表是一个值
>>> var_param(a)
0 [11, 22, 33]

#使用*a将【a列表的每一项】作为参数由可变参数接收
>>> var_param(*a)
0 11
1 22
2 33

#正常传入3个参数,统一被可变参数接收
>>> var_param(11,22,33)
0 11
1 22
2 33
>>> 

二.关键字参数

先来一个简单的调用

#方法
def key_param(a):
    print a


#调用
#指定关键字a并传值,正确接收输出
>>> key_param(a=6)
6

#指定关键字b并传值,方法中未定义该关键字,报错
>>> key_param(b=6)

Traceback (most recent call last):
  File "<pyshell#1>", line 1, in <module>
    key_param(b=6)
TypeError: key_param() got an unexpected keyword argument 'b'

定义一个接收不定量关键字参数的方法

def keys_param(**kw):
    print kw

调用结果

>>> qq={'a':1,'b':2,'c':3}

#两种错误调用方法传参qq,*qq,原因暂时不清楚
>>> keys_param(qq)

Traceback (most recent call last):
  File "<pyshell#10>", line 1, in <module>
    keys_param(qq)
TypeError: keys_param() takes exactly 0 arguments (1 given)


>>> keys_param(*qq)

Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    keys_param(*qq)
TypeError: keys_param() takes exactly 0 arguments (3 given)

#使用**调用,将字典中的key:value每一项传入
>>> keys_param(**qq)
{'a': 1, 'c': 3, 'b': 2}

#调用以关键字参数的形式传入参数,会以字典形式接收
>>> keys_param(a=1,b=2,c=3)
{'a': 1, 'c': 3, 'b': 2}
 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值