Python入门教程第23篇 函数之默认参数
Posted 不剪发的Tony老师
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python入门教程第23篇 函数之默认参数相关的知识,希望对你有一定的参考价值。
本篇我们将会学习如何利用 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 默认参数可以简化函数调用。
- 默认参数需要写在非默认参数之后。
以上是关于Python入门教程第23篇 函数之默认参数的主要内容,如果未能解决你的问题,请参考以下文章