【Python函数】什么是默认参数和关键字参数?如何在Python函数中使用它们?
默认参数(Default Arguments)是在定义函数时,为参数提供初始值的一种方式。当调用函数时,如果没有为该参数提供值,则会使用默认值。关键字参数(Keyword Arguments)是一种使用形如"参数名 = 值"的方式来传递参数的方法。
1. 默认参数:
默认参数可以为函数的一个或多个参数提供初始值。在定义函数时,可以在参数列表中设置默认值,如下面的例子所示:
def greet(name, message="Hello"):
print(message + ", " + name)
greet("Alice") # 输出:Hello, Alice
greet("Bob", "Hi") # 输出:Hi, Bob
在上面的例子中,函数greet()有两个参数:name和message。message参数有一个默认值"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参数提供值,默认值生效。
总结:
默认参数是在定义函数时,为参数提供初始值的一种方式,调用函数时,如果没有为该参数提供值,则会使用默认值;
关键字参数是一种通过指定参数名来传递参数的方式,可以与默认参数一起使用,使函数调用更清晰。
