Python函数非匹配参数类型传递
2015-06-21 22:39
701 查看
1、多种类型参数传递
有如下函数定义:
(1)当不传递参数时
结果为:
(2)当传递的参数为元组时
其中的调用方式是*t,结果如下:
(3)当传递的参数为字典时
其中的调用方式是**d,结果如下:
这样进行匹配时,字典的key必须和形参保持一致才能进行匹配。
2、多参数接收
有如下函数定义:
当进行如下调用时
结果为:
即自动的把第一个值之后的其他值封装成元组。
结果为:
有如下函数定义:
调用
结果为
继续调用
结果为:
可见,传递的参数类型是和对应的数据类型相匹配的。
有如下函数定义:
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'}
可见,传递的参数类型是和对应的数据类型相匹配的。
相关文章推荐
- Python核心编程笔记---- print@2
- Python核心编程笔记---- print
- [Leetcode.python] 002. Add Two Numbers
- 为python添加tab自动补全功能
- eclipse配置python开发插件
- Python 模块的一般处理
- Python中四种运行其他程序的方式
- scrapy爬取豆瓣读书的图书信息
- Windows下搭建Python环境
- [Leetcode.python] 001. Two Sum
- python文件操作与输入输出
- ubuntu14.04 python2.7 安装配置OpenCV3.0
- Python socket编程之构造IP首部和ICMP首部
- python一些内置函数——filter、map、reduce
- python中List添加、删除元素的几种方法
- 搭建Python环境与Python文件类型
- [Python]新手写爬虫全过程(已完成)
- Python_Scrapy_8.爬虫
- Python中关于模块的 '__name__' 变量的使用
- Python可执行对象——exec、eval、compile