Python 参数使用总结
2018-02-03 22:38
239 查看
Python中参数的传递非常灵活,不太容易记住理解,特整理如下备忘:
此时需要注意,默认参数只能在必选参数后面
当有多个默认参数时,调用参数传递的值会按照顺序赋值,也可以通过指定参数值为特定参数赋值
可变参数只能出现在必选参数和默认参数后面
和普通参数、默认参数的区别就是需要在传递参数时指定赋值给的参数名字
命名关键字参数只能出现在必选参数、默认参数、可变参数后面
如果命名关键字参数前面有可变参数,则可省略*号
在可变参数的基础上,即不仅仅可以传递任意个参数,同时还可以对传递的各个参数指定参数名,可以理解为传递了一个dict
可选参数——参数有默认值,调用函数时可以传递也可以不传递,如果不传递则使用默认值
可变参数——传递数量不确定(可以为0个)的参数,类似传递一个list
命名关键字参数——如果设置默认值,则同可选参数,否则必须传递,且传递时指定值对应的参数名
关键字参数——传递数量不确定(可以为0)的键值对,类似传递一个dict
在函数中出现的顺序必须和上面的保持一致
参考资料:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431752945034eb82ac80a3e64b9bb4929b16eeed1eb9000
普通参数
即按照函数所需的参数,对应位置传递对应的值,可以对应Java中的普通参数defmax(a,b): ifa>b: returna else: returnb max(5,13)#=13
默认参数
可以对位置参数中的某个参数设置默认值,设置了默认值的参数在调用时可以不传递此时需要注意,默认参数只能在必选参数后面
defmax(a,b=0):
ifa>b:
returna
else:
returnb
max(5,13)#=13
max(5)#=5
max(-6)#=0
当有多个默认参数时,调用参数传递的值会按照顺序赋值,也可以通过指定参数值为特定参数赋值
defposition(x,y=1,z=0):
print('x:',x,'y:',y,'z:',z)
position(5)#x=5,y=1,z=0
position(5,6)#x=5,y=6,z=0
position(5,z=6)#x=5,y=1,z=6
可变参数
即传递的参数个数不确定,可以对应为Java中的可变参数,类似传递了一个list或tuple可变参数只能出现在必选参数和默认参数后面
defmax(*numbers):
#此处可以有更简单的写法
sum=0
fornumberinnumbers:
sum+=number
returnsum
sum(1,2,3,4,5)#=15
#对于list或tuple,如nums=[1,2,3,4,5],可以这样使用
sum(*nums)#=15
命名关键字参数
命名关键字有些像普通参数和默认参数的结合,在一个*后面的参数为命名关键字参数和普通参数、默认参数的区别就是需要在传递参数时指定赋值给的参数名字
命名关键字参数只能出现在必选参数、默认参数、可变参数后面
defperson1(name,*,age,sex):
print('name:',name,'age:',age,'sex:',sex)
defperson1=2(name,*,age=15,sex='F'):
print('name:',name,'age:',age,'sex:',sex)
person1('zhang',age=15,sex='F')#如果命名关键字参数没有设置默认值,则必须显示给每个参数赋值
person2('zhang')#函数中已经对参数设置默认值
如果命名关键字参数前面有可变参数,则可省略*号
#age和sex均是命名关键字参数
defperson(name,*args,age,sex):
pass
关键字参数
关键字参数必须出现在必选参数、默认参数、可变参数、命名关键字参数后面在可变参数的基础上,即不仅仅可以传递任意个参数,同时还可以对传递的各个参数指定参数名,可以理解为传递了一个dict
defperson(name,**kw):
print('name:',name,'other:',kw)
person('zhang',age=15,sex='M')#name:zhangother:{'sex':'M','age':15}
#对于dict,如p={'age':15,'sex':'M'},可以这样使用
person('zhang',**p)
总结一下
普通参数——必选参数可选参数——参数有默认值,调用函数时可以传递也可以不传递,如果不传递则使用默认值
可变参数——传递数量不确定(可以为0个)的参数,类似传递一个list
命名关键字参数——如果设置默认值,则同可选参数,否则必须传递,且传递时指定值对应的参数名
关键字参数——传递数量不确定(可以为0)的键值对,类似传递一个dict
在函数中出现的顺序必须和上面的保持一致
参考资料:
相关文章推荐
- Python使用SOAPpy调用.net写的WebService的乱码问题总结
- 总结:使用Gridview的事件传递参数
- (转)window.open()使用方法以及传参数的问题总结
- Python Reactor开发总结 -- 语法和python类使用 python.select.select
- 【转帖】使用python爬虫抓站的一些技巧总结:进阶篇
- 推荐一系列python笔记,给总结阶段使用
- 存储过程中OUTPUT类型参数的使用总结
- 【转帖】使用python爬虫抓站的一些技巧总结:进阶篇
- python 装饰器功能以及函数参数使用介绍
- python 装饰器功能以及函数参数使用介绍
- Python SIP使用总结(Win&Linux通用)
- 使用swig为python添加c扩展总结
- python_getopt解析命令行输入参数的使用
- IO模式设置网络编程常见问题总结—IO模式设置,阻塞与非阻塞的比较,recv参数对性能的影响—O_NONBLOCK(open使用)、IPC_NOWAIT(msgrcv)、MSG_DONTWAIT(re
- python 字符串使用总结
- 【转】python 装饰器功能以及函数参数使用
- Django在使用mod_python+apache中配置VirtualHost的问题总结
- !!!.NET多线程使用总结——传入参数与获取返回值
- 使用CSS样式控制浏览器滚动条的参数总结【zz】