python3調(diào)用函數(shù)時可以設(shè)定一些參數(shù),可使用的正式參數(shù)類型有以下四種:必需參數(shù)、關(guān)鍵字參數(shù)、默認(rèn)參數(shù)和不定長參數(shù)。
必需參數(shù)
必需參數(shù)須以正確的順序傳入函數(shù)。調(diào)用時的數(shù)量必須和聲明時的一樣。
調(diào)用 printme() 函數(shù),你必須傳入一個參數(shù),不然會出現(xiàn)語法錯誤:
以上實(shí)例輸出結(jié)果:
關(guān)鍵字參數(shù)
關(guān)鍵字參數(shù)和函數(shù)調(diào)用關(guān)系緊密,函數(shù)調(diào)用使用關(guān)鍵字參數(shù)來確定傳入的參數(shù)值。
使用關(guān)鍵字參數(shù)允許函數(shù)調(diào)用時參數(shù)的順序與聲明時不一致,因?yàn)?python 解釋器能夠用參數(shù)名匹配參數(shù)值。
以下實(shí)例在函數(shù) printme() 調(diào)用時使用參數(shù)名:
以上實(shí)例輸出結(jié)果:
以下實(shí)例中演示了函數(shù)參數(shù)的使用不需要使用指定順序:
以上實(shí)例輸出結(jié)果:
默認(rèn)參數(shù)
調(diào)用函數(shù)時,如果沒有傳遞參數(shù),則會使用默認(rèn)參數(shù)。以下實(shí)例中如果沒有傳入 age 參數(shù),則使用默認(rèn)值:
以上實(shí)例輸出結(jié)果:
不定長參數(shù)
你可能需要一個函數(shù)能處理比當(dāng)初聲明時更多的參數(shù)。這些參數(shù)叫做不定長參數(shù),和上述 2 種參數(shù)不同,聲明時不會命名?;菊Z法如下:
加了星號 * 的參數(shù)會以元組(tuple)的形式導(dǎo)入,存放所有未命名的變量參數(shù)。
以上實(shí)例輸出結(jié)果:
如果在函數(shù)調(diào)用時沒有指定參數(shù),它就是一個空元組。我們也可以不向函數(shù)傳遞未命名的變量。如下實(shí)例:
以上實(shí)例輸出結(jié)果:
還有一種就是參數(shù)帶兩個星號 基本語法如下:
加了兩個星號 的參數(shù)會以字典的形式導(dǎo)入。
以上實(shí)例輸出結(jié)果:
聲明函數(shù)時,參數(shù)中星號 * 可以單獨(dú)出現(xiàn),例如:
如果單獨(dú)出現(xiàn)星號 * 后的參數(shù)必須用關(guān)鍵字傳入。