Python 默认参数值,对于一些函数来说,你可能为希望使一些参数可选并使用默认的值,以避免用户不想为他们提供值的情况。默认参数值可以有效帮助解决这一情况。你可以通过在函数定义时附加一个赋值运算符(=
)来为参数指定默认参数值。
要注意到,默认参数值应该是常数。更确切地说,默认参数值应该是不可变的——这将在Python教程后面的章节中予以更详细的解释。就目前来说,只要记住就行了。
案例(保存为 function_default.py
):
def say(message, times=1): print(message * times) say('Hello') say('World', 5)
输出:
$ python function_default.py
Hello
WorldWorldWorldWorldWorld
它是如何工作的
名为 say
的python函数用以按照给定的次数打印一串字符串。如果我们没有提供一个数值,则将按照默认设置,只打印一次字符串。我们通过为参数 times
指定默认参数值 1
来实现这一点。
在第一次使用 say
时,我们只提供字符串因而函数只会将这个字符串打印一次。在第二次使用 say
时,我们既提供了字符串,同时也提供了一个参数 5
,声明我们希望说(Say)这个字符串五次。
注意
只有那些位于参数列表末尾的参数才能被赋予默认参数值,意即在函数的参数列表中拥有默认参数值的参数不能位于没有默认参数值的参数之前。
这是因为值是按参数所处的位置依次分配的。举例来说,
def func(a, b=5)
是有效的,但def func(a=5, b)
是无效的。