0
点赞
收藏
分享

微信扫一扫

【Python入门教程】第23篇 函数之默认参数

代码敲到深夜 2022-01-15 阅读 65

本篇我们将会学习如何利用 Python 函数的默认参数简化函数调用。

函数默认参数

当我们定义函数时,可以为参数指定一个默认值。指定参数默认值的语法如下:

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

在以上语法中,我们使用赋值运算符(=)为某些参数(param2、param3 等)指定了默认值(value2、value3 等)。

调用函数时,如果传递了实参,函数将会使用实际传递的数据,而不是参数的默认值。但是,如果省略了某些参数,函数将会使用它们的默认值;如果没有定义默认值,将会返回语法错误。

为了使用默认值,我们需要将具有默认值的参数放在其他参数之后;否则,创建函数时将会返回语法错误。例如,以下是一个错误语法:

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

默认参数示例

以下示例定义了 greet() 函数,用于返回一个问候信息:

def greet(name, message='Hi'):
    return f"{message} {name}"

greet() 函数包含两个参数:name 和 meassage。同时,参数 message 拥有一个默认值“Hi”。

以下示例调用了 greet() 函数,调用时传递了两个实参:

def greet(name, message='Hi'):
    return f"{message} {name}"

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

输出的结果如下:

Hello John

由于我们调用函数 greet() 时传递了两个参数,因此函数使用了传递的数据,而不是默认值(“Hi”)。

以下示例调用 greet() 函数时没有传递第二个参数:

def greet(name, message='Hi'):
    return f"{message} {name}"

greeting = greet('John')
print(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() 函数会将它作为第一个参数,而不是第二个参数。

为了解决这个问题,我们可以使用关键字参数(keyword argument)调用 greet() 函数:

def greet(name='there', message='Hi'):
    return f"{message} {name}"

greeting = greet(message='Hello')
print(greeting)

输出结果如下:

Hello there

下一篇我们将会介绍函数的关键字参数。

总结

  • 使用 Python 默认参数可以简化函数调用。
  • 默认参数需要写在非默认参数之后。
举报

相关推荐

0 条评论