欢迎访问宙启技术站
智能推送

【Python函数】什么是默认参数和关键字参数?如何在Python函数中使用它们?

发布时间:2023-07-06 19:36:25

默认参数(Default Arguments)是在定义函数时,为参数提供初始值的一种方式。当调用函数时,如果没有为该参数提供值,则会使用默认值。关键字参数(Keyword Arguments)是一种使用形如"参数名 = 值"的方式来传递参数的方法。

1. 默认参数:

默认参数可以为函数的一个或多个参数提供初始值。在定义函数时,可以在参数列表中设置默认值,如下面的例子所示:

def greet(name, message="Hello"):
    print(message + ", " + name)

greet("Alice")   # 输出:Hello, Alice
greet("Bob", "Hi")   # 输出:Hi, Bob

在上面的例子中,函数greet()有两个参数:namemessagemessage参数有一个默认值"Hello"。当我们调用greet("Alice")时,由于没有为message参数提供值,默认值生效。而当我们调用greet("Bob", "Hi")时,我们为message参数提供了一个新的值,覆盖了默认值。

需要注意的是,带有默认参数的参数必须位于参数列表的最后,即不带默认值的参数不能出现在带默认值的参数后面。

2. 关键字参数:

关键字参数是一种通过指定参数名来传递参数的方式,相比位置参数(根据参数的位置进行传递),关键字参数可以在调用函数时更清晰地显示参数的含义。

下面是一个使用关键字参数的例子:

def greet(name, message="Hello"):
    print(message + ", " + name)

greet(message="Hi", name="Alice")   # 输出:Hi, Alice

在上面的例子中,我们通过指定参数名来传递参数,即使参数的顺序不同,函数仍然能正确地识别参数。

关键字参数可以与默认参数一起使用,在函数定义时为参数设置默认值,并在调用函数时使用关键字参数提供其他值,如下面的例子所示:

def greet(name, message="Hello"):
    print(message + ", " + name)

greet(message="Hi", name="Alice")   # 输出:Hi, Alice
greet("Bob")   # 输出:Hello, Bob

在上面的例子中,当我们调用greet(message="Hi", name="Alice")时,我们使用关键字参数message="Hi"name="Alice"覆盖了默认值。而当我们调用greet("Bob")时,由于没有为message参数提供值,默认值生效。

总结:

默认参数是在定义函数时,为参数提供初始值的一种方式,调用函数时,如果没有为该参数提供值,则会使用默认值;

关键字参数是一种通过指定参数名来传递参数的方式,可以与默认参数一起使用,使函数调用更清晰。