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

  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'}

可见,传递的参数类型是和对应的数据类型相匹配的。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值