#!/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 的函數(shù)用來(lái)打印一個(gè)字符串任意所需的次數(shù)。如果我們不提供一個(gè)值,那么默認(rèn)地,字符串將只被打印一遍。我們通過(guò)給形參 times 指定默認(rèn)參數(shù)值1來(lái)實(shí)現(xiàn)這一功能。
在第一次使用 say 的時(shí)候,我們只提供一個(gè)字符串,函數(shù)只打印一次字符串。在第二次使用 say 的時(shí)候,我們提供了字符串和參數(shù) 5,表明我們想要 說(shuō) 這個(gè)字符串消息5遍。
重要 只有在形參表末尾的那些參數(shù)可以有默認(rèn)參數(shù)值,即你不能在聲明函數(shù)形參的時(shí)候,先聲明有默認(rèn)值的形參而后聲明沒(méi)有默認(rèn)值的形參。 這是因?yàn)橘x給形參的值是根據(jù)位置而賦值的。例如,def func(a, b=5)是有效的,但是 def func(a=5, b)是 無(wú)效 的。