Python函数- 默认参数
Python中的函数可以包含默认参数,这些参数在函数定义中被赋予了默认值。当调用函数时,如果没有为该参数提供值,将使用默认值。
在定义函数时,可以通过在参数名后面使用赋值操作符(=)来为参数指定默认值。以下是一个使用默认参数的函数示例:
def greet(name, greeting='Hello'):
print(greeting, name)
在上面的函数中,参数greeting被定义为默认参数,默认值为'Hello'。如果没有为该参数提供值,将使用默认值。
当调用greet函数时,可以提供name参数的值,并且可以选择是否提供greeting参数的值。如果没有提供greeting参数的值,将使用默认值:
greet('Alice') # 输出:Hello Alice
greet('Bob', 'Hi') # 输出:Hi Bob
在 个调用中,只提供了name参数的值,greeting参数使用了默认值,所以输出为'Hello Alice'。
在第二个调用中,为name和greeting参数都提供了值,所以greeting参数的默认值被覆盖,输出为'Hi Bob'。
默认参数还可以是任何有效的Python表达式,包括函数调用和其他变量。这使得在定义默认参数时具有更大的灵活性。例如:
def increment(n, step=1):
return n + step
print(increment(5)) # 输出:6
print(increment(5, 2)) # 输出:7
print(increment(5, step=3)) # 输出:8
在上面的示例中,increment函数定义了两个参数n和step,其中step的默认值为1。 个调用中,只提供了n参数的值,step参数使用了默认值,所以输出为6。在第二个和第三个调用中,为n和step参数都提供了值,所以step参数的默认值被覆盖,分别输出为7和8。
需要注意的是,默认参数的值只在函数定义时解析一次,而不是每次调用函数都重新解析。这意味着如果默认参数是可变对象(例如列表或字典),则在不同的函数调用之间共享同一个对象。这可能会导致出现意外结果。为了避免这种情况,可以使用不可变对象作为默认参数的值,例如字符串、整数或元组。
总结一下,默认参数是指在函数定义中为参数提供的默认值。如果调用函数时没有为该参数提供值,则使用默认值。默认参数可以是任何有效的Python表达式。默认参数的值只在函数定义时解析一次,而不是每次调用函数都重新解析。
