Python默认参数

对于一些函数,你可能想要一些参数是可选,即在用户不希望为它们提供值时使用默认值,这在默认的参数值的帮助下完成的。

你可以在函数定义中通过在参数名称后使用赋值操作符(=)后跟默认值来指定默认的参数值。

注意,默认参数值应该是一个常数。更准确的说,默认的参数值应该是不可变的——这在后面的章节中做了详细解释。现在,只要记住这点。

函数默认参数举例:
def say(message, times = 1):
    print(message * times)

say('你好')
say('世界', 5)
输出:
你好
世界世界世界世界世界

它是如何工作的:
函数say是用来按照指定的次数打印一个字符串。如果我们不提供一个值,那么在默认情况下字符串只打印一次。为此,我们为参数times指定一个默认参数值1。

在第一次使用函数say时,我们只提供了字符串,它打印字符串一次。在第二次使用say时,我们提供了字符串和一个实参5两个参数,说明我们想要say字符串5次。

注意:只有在参数列表后面的的参数可以被赋予默认参数值,即在参数列表中,你不能在没有默认值的参数前有有默认参数值的参数。

这是因为,值按位置分配给参数。例如,def func(a, b=5)是有效的,而def func(a=5, b)是无效的。