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

Python函数- 默认参数

发布时间:2023-09-28 12:35:52

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'

在第二个调用中,为namegreeting参数都提供了值,所以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函数定义了两个参数nstep,其中step的默认值为1。 个调用中,只提供了n参数的值,step参数使用了默认值,所以输出为6。在第二个和第三个调用中,为nstep参数都提供了值,所以step参数的默认值被覆盖,分别输出为78

需要注意的是,默认参数的值只在函数定义时解析一次,而不是每次调用函数都重新解析。这意味着如果默认参数是可变对象(例如列表或字典),则在不同的函数调用之间共享同一个对象。这可能会导致出现意外结果。为了避免这种情况,可以使用不可变对象作为默认参数的值,例如字符串、整数或元组。

总结一下,默认参数是指在函数定义中为参数提供的默认值。如果调用函数时没有为该参数提供值,则使用默认值。默认参数可以是任何有效的Python表达式。默认参数的值只在函数定义时解析一次,而不是每次调用函数都重新解析。