Python函数参数分类使用与新特性详细分析讲解

  • Post category:Python

Python函数参数分类使用与新特性详细分析讲解

函数参数的分类

在Python中,函数参数主要可以分为以下几类:

  1. 位置参数
  2. 关键字参数
  3. 默认参数
  4. 可变参数

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及以上版本中,函数参数还拥有以下两个新特性:

  1. 位置参数后添加”/”,表示位置参数结束,后面的参数必须使用关键字参数传递。
  2. 关键字参数前添加”*”,表示接收字典类型的剩余参数。

示例代码如下:

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中函数参数的分类使用以及新特性,其中包括:

  1. 位置参数
  2. 关键字参数
  3. 默认参数
  4. 可变参数
  5. 位置参数后添加“/”表示位置参数结束,后面的参数必须使用关键字参数传递。
  6. 关键字参数前添加“*”表示接收字典类型的剩余参数。

对于函数参数的使用,我们应该根据实际情况选取最合适的方式。