📜  Python函数中的默认参数(1)

📅  最后修改于: 2023-12-03 15:34:27.773000             🧑  作者: Mango

Python函数中的默认参数

在Python中,函数可以接受参数。对于一个函数,有些参数在大多数调用时都是一样的,这时我们就可以使用默认参数。默认参数的值在声明时就已经确定,如果没有在调用时传入相应参数,就会使用默认值。

定义默认参数

定义默认参数非常简单,只需要在函数定义时,在参数列表中指定默认值即可:

def my_function(x, y=2):
    print(f"x={x}, y={y}")

在上面的例子中,my_function 函数有两个参数: xy。 在函数定义中,我们为参数 y 指定了默认值为 2,这意味着如果我们在调用函数时不提供任何值给 yy 将被默认设置为 2。

下面是一些示例函数调用:

my_function(1, 3)  # 输出:x=1, y=3
my_function(1)     # 输出:x=1, y=2 (使用默认值)
多个默认参数

同时设置多个参数的默认值也非常容易。 我们可以在函数定义中一个接一个地为每个参数指定默认值,或者我们可以只给其中一些参数指定默认值,而对其他参数不指定默认值。 如果我们只想指定后面的参数的默认值,而不是中间的参数的默认值,则可以传递参数名称来避免任何混淆。

下面是一个具有多个默认参数的函数的示例:

def my_function2(a, b=3, c=4, d=5):
    print(f"a={a}, b={b}, c={c}, d={d}")

这个函数有四个参数,其中 bcd 都有默认值。 如果我们未提供这些参数,则它们将使用默认值。

以下是函数调用示例:

my_function2(1, 2, 3, 4)   # 输出:a=1, b=2, c=3, d=4
my_function2(1)            # 输出:a=1, b=3, c=4, d=5 (使用默认值)
my_function2(1, d=10)      # 输出:a=1, b=3, c=4, d=10 (只改变最后一个参数)
my_function2(1, c=10, b=20) # 输出:a=1, b=20, c=10, d=5 (按名称传递参数)
默认参数的权衡

然而默认参数也存在一些问题,特别是在内存中使用较大的默认值时。 例如,假设我们使用一个需要大量内存才能分配的默认参数,但是我们只在极少数的情况下使用此参数。在这种情况下,我们浪费了大量的内存资源,这是不可取的。 因此,在函数定义中要小心使用默认参数。

总的来说,使用默认参数可以使我们的代码更具可读性和可维护性,但是需要用心思考默认值的使用,以避免出现不必要的问题。