Python函數(shù)的參數(shù)類型詳解_第1頁
Python函數(shù)的參數(shù)類型詳解_第2頁
Python函數(shù)的參數(shù)類型詳解_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、Python 函數(shù)的參數(shù)類型詳解Python 中函數(shù)的參數(shù)類別繁多,且經(jīng)常被組合使用,比較難以理解和使用。如果遇到這樣的函數(shù)定義:def fun(a,/,b=4,*c,d,*e) Print(a,b,c,d,e)你會不會一臉懵?花上 10 分鐘左右的時間,也許你就能豁然開朗。一、形參(parameter)與實參(argument)fun定義中,參數(shù)列表的 a,b,*c,d,*e 這些就是形參。在函數(shù)調(diào)用時,提供給函數(shù)的數(shù)值或變量值就是實參。比如對于上述函數(shù), 調(diào)用時代碼為:fun(3,4,5,6,d=7,f=6,g=9),其中括號里的內(nèi)容就是實參。二、位置參數(shù)(positional param

2、eter)和關(guān)鍵字參數(shù)(keyword 稱為位置參數(shù)。比如在C 語言中,定義一個函數(shù): int sum(int a ,int b ,int c)return a+b+c;a、b、c Int d=sum(3,4,5);35 三個整數(shù)即為實參,分別對應(yīng)于三個形參abc3 b;4 對應(yīng)于第二個形參b5 對應(yīng)于第三個實參c。Python 關(guān)鍵字參數(shù)個函數(shù):def Sum(a,b,c):return a+b+cC 3 用關(guān)鍵字匹配方式,比如:Sum(3,c=5,b=4)關(guān)鍵字參數(shù)與位置參數(shù)相比,有一些不同的特性:關(guān)鍵字參數(shù)只能用在位置參數(shù)之后字參數(shù)方式后,其后所有的參數(shù)只能使用關(guān)鍵字參數(shù),不能再使用位置

3、參數(shù);關(guān)鍵字參數(shù)的順序可以與形參列表的順序不一致Sum(3,c=5,b=4) b 表(a,b,c)中順序不同。如:def Sum(a,/,b,*,c):return a+b+c其中/和*分別是位置參數(shù)限定符和關(guān)鍵字參數(shù)限定符必須在*在/之前的參數(shù),只能使用位置參數(shù),也稱為僅限位置參數(shù)(positinal-only); 在*之后的參數(shù),只能使用關(guān)鍵字參數(shù);在和*之間的參數(shù)可以使用位置參數(shù), 也可以使用關(guān)鍵字參數(shù)。比如調(diào)用上面的函數(shù)時可以這樣寫:Sum(3,4,c=5)或者:Sum(3,b=4,c=5)如果寫成 Sum(3,4,5)或者 Sum(a=3,b=4,c=5)都是錯誤的。除此之外,還有幾

4、個特殊的參數(shù):默認參數(shù)、可變參數(shù)、命名關(guān)鍵字參數(shù)和可變關(guān)鍵字參數(shù)。(default 和可變位置參數(shù)(var-positional parameter) 默認參數(shù)和可變位置參數(shù)都屬于位置參數(shù),遵循位置參數(shù)的特性。默認參數(shù)就是在定義函數(shù)時,直接給出某個參數(shù)的默認值,在調(diào)用函數(shù)時如果沒提供這個參數(shù)的實參的話,就將默認值帶入函數(shù);提供了相應(yīng)的實參的話, 就用提供的實參值。比如:def Sum(a,b,c=5) return a+b+c在調(diào)用這個函數(shù)的時候,可以這樣:Sum(3,4)Sum(3,4,5)是同樣的效果。也可以這樣: Sum(3,4,6)得到的結(jié)果將是 13。默認參數(shù)必須位于參數(shù)列表中位置參

5、數(shù)的最后,也就是說,在參數(shù)列表中出現(xiàn)了默認參數(shù)后,就不能再定義任何其他的位置參數(shù)??勺兾恢脜?shù)是個數(shù)不確定的位置參數(shù),函數(shù)定義是需在形參前加上*,比如:def Sum(a,b,c=5,*d) print(a,b,c,d) e=a+b+cfor i in d:e+=d return e如用如下代碼調(diào)用次函數(shù): Sum(3,4,5,6,7,8,9),函數(shù)中的 print 方法就會輸出(3,4,5,(6,7,8,9)4 個參數(shù)封裝成元組(6,7,8,9)d。需要注意的是,可變位置參數(shù)同時具有關(guān)鍵字參數(shù)限定符*的作用參數(shù)只能用關(guān)鍵字參數(shù)。四、僅限關(guān)鍵字參數(shù)(keyword-onlyparameter)與可變關(guān)鍵字參數(shù)(var-keywordparameter)普通的關(guān)鍵字參數(shù)也成為 僅限關(guān)鍵字參數(shù),每一個參數(shù)必須對應(yīng)于一個實參。在函數(shù)定義時如果最后一個關(guān)鍵字參數(shù)前加了*,那么這個形參就可以對應(yīng)0 個或不確定個實參,成為可變關(guān)鍵字參數(shù)。比如:def fun(a,b,*,c,*d):print(a,b,c,d)其中*d 就是可變關(guān)鍵字參數(shù),它可以接收多余的關(guān)鍵字參數(shù)并封裝成字典,所

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論