Python函数参数分类使用与新特性详细分析讲解
函数参数的分类
在Python中,函数参数主要可以分为以下几类:
- 位置参数
- 关键字参数
- 默认参数
- 可变参数
1. 位置参数
位置参数是指在函数定义中按照顺序定义的参数。调用函数时需要按照相同的顺序传递参数,否则会出现参数数量不匹配的错误。
示例代码如下:
def add(x, y):
return x + y
result = add(1, 2)
print(result) # 输出3
2. 关键字参数
关键字参数是指在调用函数时使用参数名和对应的值传递参数。这样调用函数时,参数的顺序可以不和函数定义中的顺序一致。
示例代码如下:
def add(x, y):
return x + y
result = add(y=2, x=1)
print(result) # 输出3
3. 默认参数
默认参数是指在函数定义时为参数提供默认值,调用函数时可以不传递该参数,直接使用默认值。
示例代码如下:
def add(x, y=2):
return x + y
result1 = add(1, 2)
result2 = add(1)
print(result1) # 输出3
print(result2) # 输出3
4. 可变参数
可变参数是指在函数定义时使用”“或”*”表示参数,接收不定数量的参数,在调用时可以传递任意数量的参数。
其中,”“表示接收元组类型的不定长参数,”*”表示接收字典类型的不定长参数。
示例代码如下:
def add(*args):
result = 0
for arg in args:
result += arg
return result
result1 = add(1, 2, 3)
result2 = add(1, 2, 3, 4, 5)
print(result1) # 输出6
print(result2) # 输出15
函数参数的新特性
在Python3.8及以上版本中,函数参数还拥有以下两个新特性:
- 位置参数后添加”/”,表示位置参数结束,后面的参数必须使用关键字参数传递。
- 关键字参数前添加”*”,表示接收字典类型的剩余参数。
示例代码如下:
def add(x, y, /, z=3, *, a, b):
return x + y + z + a + b
result = add(1, 2, 4, b=5, a=6)
print(result) # 输出18
在上述代码中,“/”用于分隔位置参数和关键字参数,其中“z=3”为默认参数,后面的“a”和“b”必须使用关键字参数传递,而“*”用于接收除了前面的参数以外的剩余参数。
总结
本文介绍了Python中函数参数的分类使用以及新特性,其中包括:
- 位置参数
- 关键字参数
- 默认参数
- 可变参数
- 位置参数后添加“/”表示位置参数结束,后面的参数必须使用关键字参数传递。
- 关键字参数前添加“*”表示接收字典类型的剩余参数。
对于函数参数的使用,我们应该根据实际情况选取最合适的方式。