您的位置:首页 > 编程语言 > Python开发

Python函数非匹配参数类型传递

2015-06-21 22:39 701 查看
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'}

可见,传递的参数类型是和对应的数据类型相匹配的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: