您的位置:首页 > 编程语言 > Python开发

【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种参数的放置优先级从高到低的顺序为:位置参数,默认参数,可变参数,命名关键字参数,关键字参数,他们都可以根据实际情况组合使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: