摘要:在本节中,你将学习 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()
函数有两个参数name
和 message
。其中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 默认参数可以简化函数调用。
将默认参数放在非默认参数之后。