Python的函数中有五种参数,分别为位置参数、默认参数、可变参数、关键字参数和命名关键字参数,命名关键字参数只在python3中使用,在python2中不可用。
1、位置参数
def test(a,b,c):
print(c,b,a)
test(1,2,3)
运行结果为:
3 2 1
解释说明:
语句test(1,2,3)中的1,2,3分别对应test(a,b,c)中的a,b,c,与位置有关,如果要调整位置,需要在调用函数的时候把参数名写上,例如:
def test(a,b,c):
print(c,b,a)
test(1,c=2,b=3)
运行结果为:
2 3 1
2、默认参数
def test(a,b,c=4,d=5,e=6):
print(a,b,c,d,e)
test(1,2,e=8,c=19)
运行结果为:
1 2 19 5 8
解释说明:
a和b是位置参数,c,d,e是默认参数,默认参数是在定义函数是有一个默认的值,在调用函数时如果没给默认参数赋值,就会使用默认值。例如本例中,1和2对应a和b;c虽然有默认值4,但是在调用函数的时候给c的赋值是19,结果19生效·;调用函数的时候没给d赋值,所以d会使用默认值5;最后给e赋值为8。定义函数的时候,默认参数必须写在位置参数的后边,默认参数的位置可以不按顺序调用,当不按顺序调用时,需要写参数名。
3、可变参数
def test(a,b,*nums):
print(a,b,nums)
test(1,2,4,3,5)
test(1,2)
运行结果为:
1 2 (4, 3, 5)
1 2 ()
解释说明:
可变参数的形式是*参数名,调用函数时,在位置参数后边可以写任意多个参数,也可以是0个参数。这些任意多个参数以元组(tuple)的形式呈现。
可变参数也可以这样用:
def test(a,b,*nums):
print(a,b,nums)
s = (4,3,5)
test(1,2,8,*s,7)
运行结果为:
1 2 (8, 4, 3, 5, 7)
解释说明:
可变参数可以直接使用现成的元组,*号加上元组对应的变量名。
4、关键字参数
def person(name,age,**kw):
print(name,age,kw)
person('xiaoming',8,gender='male',job='student')
运行结果为:
xiaoming 8 {‘gender’: ‘male’, ‘job’: ‘student’}
解释说明:
关键字参数的形式是**参数名,在调用函数的时候,在位置参数后边可以写任意多个参数,但是必须写上参数名,例如本例中的gender和job,关键字参数以字典(dict)的形式呈现。
和可变参数类似的地方是,如果已经有现成的字典,关键字参数也可以这样用:
def person(name,age,**kw):
print(name,age,kw)
other = {'gender':'male','job':'student'}
person('xiaoming',8,hobby='swimming',**other,height='130')
运行结果为:
xiaoming 8 {‘hobby’: ‘swimming’, ‘gender’: ‘male’, ‘job’: ‘student’, ‘height’: ‘130’}
解释说明:
在使用现成的字典时,形式是**加上字典的变量名
5、命名关键字参数
def test(a,b,*,c,d):
print(a,b,c,d)
test(1,2,c=3,d=4)
运行结果为:
1 2 3 4
解释说明:
命名关键字和位置关键字之间有一个*,在调用函数时,必须写上参数名,例如本例中的c,d,不然会报错。此处的*也可以是可变参数,使用方法如下:
def test(a,b,*nums,c,d):
print(a,b,nums,c,d)
test(1,2,7,8,c=3,d=4)
运行结果为:
1 2 (7, 8) 3 4
5、五种参数定义的顺序
从左往右依次为,位置参数,默认参数,可变参数/命名关键字参数,关键字参数。

本文介绍了Python函数中的五种参数类型:位置参数、默认参数、可变参数、关键字参数和命名关键字参数。位置参数按顺序传入,而默认参数在定义时设定默认值。可变参数允许传入任意数量的参数,以元组形式接收。关键字参数需指定参数名,以字典形式接收,而命名关键字参数需在其他参数之后,确保参数明确。
4125

被折叠的 条评论
为什么被折叠?



