【python学习笔记一】python的5种方法参数
2017-01-09 16:05
267 查看
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种参数的放置优先级从高到低的顺序为:位置参数,默认参数,可变参数,命名关键字参数,关键字参数,他们都可以根据实际情况组合使用相关文章推荐
- DB2学习笔记 --- python连接db2的connection方法参数
- Python学习笔记五(面向对象-类-方法-属性)
- SilverLight学习笔记--Silverligh之在SL中调用Javascript (四种调用方法+简单与复杂参数的传递)
- haXe学习笔记:写一个支持类型参数的静态方法
- 【Python学习笔记】list/dict对象复制的误区与正确方法
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- Java学习笔记003——继承、抽象类、类相等测试、泛型数组列表、可变参数方法
- Python学习笔记-XML大文件的XSD验证方法
- python学习笔记(3)列表的常见方法
- Struts2学习笔记之动态方法调用和参数获取
- java学习笔记:声明方法时加入可变参数
- CLR Via C# 学习笔记(6) 方法参数相关(out ref params)
- C#.NET学习笔记---C#中方法参数的传递方式: 值类型(默认),ref类型,out类型和params类型
- 31天重构学习笔记7. 重命名(方法,类,参数)
- C++学习笔记(6)——多重继承类对象的构造函数参数的传递方法
- CLR Via C# 学习笔记(6) 方法参数相关(out ref params)
- 31 天重构学习笔记7. 改名(方法,类,参数)
- 31天重构学习笔记7. 重命名(方法,类,参数)
- python学习笔记-------参数的处理
- python学习笔记——Thread常用方法