MEMOO
MEMOO
Published on 2025-04-18 / 4 Visits
0
0

Python函数的默认参数

摘要:在本节中,你将学习 Python 默认参数以简化函数调用。

Python 默认参数简介

在定义函数时,你可以为每个参数指定一个默认值。

要为参数指定默认值,请使用以下语法:

def function_name(param1, param2=value2, param3=value3, ...):

在此语法中,你使用赋值运算符 (=) 为每个参数指定默认值 (value2, value3, …)。

当你调用函数并向具有默认值的参数传递参数值(实参)时,函数将使用该参数值(实参)而不是默认值。

然而,如果你不传递该参数值(实参),函数将使用默认值。

要使用默认参数,你需要将**具有默认值的参数放在其他参数之后**。否则,你将得到语法错误。

例如,你不能这样做:

def function_name(param1=value1, param2, param3):

这将导致语法错误。

Python 默认参数示例

以下示例定义了一个返回问候消息的 greet() 函数:

def greet(name, message='Hi'):

    return f"{message} {name}"

greet() 函数有两个参数namemessage。其中message 参数具有默认值 'Hi'

以下代码调用了 greet() 函数并传递了两个参数值(实参):

def greet(name, message='Hi'):

    return f"{message} {name}"

greeting = greet('John', 'Hello')

print(greeting)

输出:

Hello John

由于我们向 greet() 函数传递了第二个参数值(实参),因此它使用了该参数值而不是默认值。

以下示例调用 greet() 函数时未传递第二个参数值(实参):

def greet(name, message='Hi'):

    return f"{message} {name}"

greeting = greet('John')

print(greeting)  # 打印 greeting 的值

输出:

Hi John

在这种情况下greet() 函数使用了 message 参数的默认值。

多个默认参数

以下示例重新定义了 greet() 函数,其中两个参数都具有默认值:

def greet(name='there', message='Hi'):

    return f"{message} {name}"

在此示例中,你可以调用 greet() 函数而不传递任何参数:

def greet(name='there', message='Hi'):

    return f"{message} {name}"

greeting = greet()

print(greeting)

输出:

Hi there

假设你希望 greet() 函数返回类“Hello there”这样的问候语。你可能会想到如下函数调用方式:

def greet(name='there', message='Hi'):

    return f"{message} {name}"

greeting = greet('Hello')

print(greeting)

不幸的是,它返回了一个意外的值:

Hi Hello

因为当你传递 'Hello' 参数时greet() 函数会将其视为第一个参数,而不是第二个参数。

为了解决这个问题,你需要使用关键字参数来调用 greet() 函数,如下所示:

def greet(name='there', message='Hi'):

    return f"{message} {name}"

greeting = greet(message='Hello')

print(greeting)

输出:

Hello there

总结

  • 使用 Python 默认参数可以简化函数调用。

  • 将默认参数放在非默认参数之后。


Comment