默认参数值
对于一些函数,你可能希望它的一些参数是 可选 的,如果用户不想要为这些参数提供值的话,这些参数就使用默认值。这个功能借助于默认参数值完成。你可以在函数定义的形参名后加上赋值运算符(=)和默认值,从而给形参指定默认参数值。
注意,默认参数值应该是一个参数。更加准确的说,默认参数值应该是不可变的——这会在后面的章节中做详细解释。从现在开始,请记住这一点。
使用默认参数值
#!/usr/bin/python
# Filename: func_default.py
def
say
(message, times =
1
):
print
message * times
say(
'Hello'
)
say(
'World'
,
5
)
(源文件:code/func_default.py)
输出
$ python func_default.py
Hello
WorldWorldWorldWorldWorld
它如何工作
名为say
的函数用来打印一个字符串任意所需的次数。如果我们不提供一个值,那么默认地,字符串将只被打印一遍。我们通过给形参times
指定默认参数值1
来实现这一功能。
在第一次使用say
的时候,我们只提供一个字符串,函数只打印一次字符串。在第二次使用say
的时候,我们提供了字符串和参数5
,表明我们想要 说 这个字符串消息5遍。
重要
只有在形参表末尾的那些参数可以有默认参数值,即你不能在声明函数形参的时候,先声明有默认值的形参而后声明没有默认值的形参。
这是因为赋给形参的值是根据位置而赋值的。例如,def func(a, b=5)
是有效的,但是def func(a=5, b)
是 无效 的。