【python学习笔记一】python的5种方法参数
来源:互联网 发布:淘宝ifashion入驻入口 编辑:程序博客网 时间:2024/06/06 08:47
python的5种方法参数
1.位置参数
这里跟java中的参数没有什么区别
def locationParam(x): print("位置参数x的值:",x)
调用:locationParam(1)
结果为:位置参数x的值: 1
2.默认参数
默认参数在调用时若没有为其传参时会有使用默认值作为参数,减少了参数调用的难度
def defaultParam(x,y=8): print("位置参数x的值:",x,"默认参数y的值:",y)
调用:defaultParam(1,9)
结果为:位置参数x的值:1 默认参数y的值: 9
调用:defaultParam(1)
结果为:位置参数x的值:1 默认参数y的值: 8
这种参数在使用过程中需要注意的是,如果默认参数定义的值是一个可变对象,那么无论调用多少次方法,都是以该对象做参数(也就是把该对象的引用的值传入),因为默认参数的值在方法声明时就已经决定
3.可变参数
类比java中的可变参数,用法没有非常大的区别
def changeableParam(x,y=8,*z): print("位置参数x的值:",x,"默认参数y的值:",y","可变参数的值:",z)
调用:
changeableParam(1,2,3,4,5,6)
结果为:位置参数x的值:1 默认参数y的值: 2 可变参数的值:[3,4,5,6]
调用:
param = [3,4,5,6] changeableParam(1,2,*param)
结果为:位置参数x的值:1 默认参数y的值: 2 可变参数的值:[3,4,5,6]
4.关键字参数
使用关键字参数的方法允许调用者传入键值对作为参数,在方法内部将自动封装成一个dict
下面是两种调用方式,其中第二种传入的是一个dict的拷贝,并不是引用
def keywordParam(x,y=8,*z,**kw): print("位置参数x的值:",x,"默认参数y的值:",y","可变参数的值:",z,"关键字参数:",kw)
调用:
param = [3,4,5]keywordParam(1,2,*z,name='小明',age=18)
输出:位置参数x的值:1 默认参数y的值: 2 可变参数的值为:[3,4,5,6] 关键字参数的值:{‘name’:’小明’,age:18}
调用:
param1 = [3,4,5]param2 = {'name':'小明','age':18}keywordParam(1,2,*param1,**param2)
输出:位置参数x的值:1 默认参数y的值: 2 可变参数的值为:[3,4,5,6] 关键字参数的值:{‘name’:’小明’,age:18}
5.命名关键字参数
关键字参数的特殊形式,可以限制传入的键值对的key,以一个*分格,之后的参数被视为命名关键字参数
(在方法中如果有可变参数时,*可以省略,原因请看下面优先级)
def limitkeyword(x,y=0,*z,*,name,age): print("位置参数x的值:",x,"默认参数y的值:",y","可变参数的值:",z,“命名关键字参数name:",name,“命名关键字参数age:",age)
调用:limitkeyword(1,2,3,4,name='小明',age=18)
输出:位置参数x的值:1 默认参数y的值: 2 可变参数的值为:[3,4] 命名关键字参数name:’小明’ 命名关键字参数age:18
6.5种参数的优先级
以上5种参数的放置优先级从高到低的顺序为:位置参数,默认参数,可变参数,命名关键字参数,关键字参数,他们都可以根据实际情况组合使用
- 【python学习笔记一】python的5种方法参数
- DB2学习笔记 --- python连接db2的connection方法参数
- Python学习笔记(一):方法、函数的使用
- Python学习笔记一:列表方法
- python学习笔记-------参数的处理
- 学习笔记:Python函数的参数
- Python学习笔记(一)
- Python学习笔记[一]
- Python学习笔记一
- python学习笔记(一)
- Python学习笔记(一)
- Python学习笔记一
- python学习笔记一
- python 学习笔记一
- python 学习笔记一
- python学习笔记: 一
- python学习笔记(一)
- Python学习笔记(一)
- z-index在css中怎么用
- 关于视频直播云服务,这几点你不得不知
- Caffe下将mnist手写图片数据转化成lmdb格式
- Linux下http协议实现
- HttpClient 命名空间
- 【python学习笔记一】python的5种方法参数
- 《Redis官方文档》用Redis构建分布式锁
- C++两个项目之间相互引用的方法
- BZOJ2733: [HNOI2012]永无乡 Splay启发式合并
- 【传感器】HT1621 LCD驱动芯片
- 11B判断三角形
- Caused by: org.apache.ibatis.type.TypeException: JDBC requires that the JdbcType must be specified f
- Android Studio自带模拟器读写SDcard不成功的解决办法
- 正则表达式验证邮箱的一些干货