对于一些函数,你可能想要一些参数是可选。
即在用户不为它们提供值时,使用默认值。
可以在函数定义中,通过在参数名后使用赋值操作符 (=),指定默认的参数值。
默认的参数值应该是不可变的。
举例:
- 1 def say(message, times = 1):
- 2 print(message * times)
- 3 say('你好')
- 4 say('世界', 5)
输出:
你好
世界世界世界世界世界
它是如何工作的:
函数 say 是用来按照指定的次数打印一个字符串。如果我们不提供 times 的值,那么在默认情况下字符串只打印一次。为此,我们为参数 times 指定一个默认参数值 1。
在第一次使用函数 say 时,我们只提供了字符串,它打印字符串一次。在第二次使用 say 时,我们提供了字符串和一个实参 5 两个参数,说明我们想要 say 字符串 5 次。
注意:参数默认值的设定是倒序的,不能前面的参数有默认值,后面的参数没有默认值
只有在参数列表后面的的参数可以被赋予默认参数值,即在参数列表中,【没有默认值的参数】前的参数不能有默认值。
这是因为,值按位置分配给参数。例如,def func(a, b=5) 是有效的,而 def func(a=5, b) 是无效的。
来源: http://www.bubuko.com/infodetail-1990763.html