1、多种类型参数传递
有如下函数定义:
def show(name='yy',age='23'):
print 'name :%s'%name
print 'age :%s'%age
(1)当不传递参数时
show()
结果为:
name :yy
age :23
(2)当传递的参数为元组时
t = ('yyyy','24')
show(*t)
其中的调用方式是*t,结果如下:
name :yyyy
age :24
(3)当传递的参数为字典时
d = {'age':25,'name':'yyxx'}
show(**d)
其中的调用方式是**d,结果如下:
name :yyxx
age :25
这样进行匹配时,字典的key必须和形参保持一致才能进行匹配。
2、多参数接收
有如下函数定义:
def acceptMoreParams(x,*args):
print x
print args
当进行如下调用时
acceptMoreParams(1,2)
结果为:
1
(2,)
即自动的把第一个值之后的其他值封装成元组。
acceptMoreParams(1,2,3,4,5,6,7,8,9)
结果为:
1
(2, 3, 4, 5, 6, 7, 8, 9)
有如下函数定义:
def acceptMoreParams(x,*targs,**dargs):
print x
print targs
print dargs
调用
acceptMoreParams(1)
结果为
1
()
{}
继续调用
acceptMoreParams(1,2,3,4,5,name='yy',age=23,address='bj')
结果为:
1
(2, 3, 4, 5)
{'age': 23, 'name': 'yy', 'address': 'bj'}
可见,传递的参数类型是和对应的数据类型相匹配的。