最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python函數(shù)的5種參數(shù)詳解

 更新時(shí)間:2017年02月24日 08:46:13   作者:祝, 畢亮  
昨天看《Python核心編程》的時(shí)候,剛好看到了函數(shù)部分,于是順勢(shì)將目前接觸到的集中參數(shù)類型都總結(jié)一下吧^^

(1)       位置參數(shù),調(diào)用函數(shù)時(shí)按位置傳入?yún)?shù)

(2)       默認(rèn)參數(shù),即在函數(shù)定義時(shí)就給出參數(shù)的值,設(shè)置默認(rèn)參數(shù)時(shí)要注意兩點(diǎn),一是必選參數(shù)在前,默認(rèn)參數(shù)在后。二是把變化小的參數(shù)放在后面可作為默認(rèn)參數(shù)。具有默認(rèn)參數(shù)的函數(shù)被調(diào)用時(shí)可以不傳入默認(rèn)參數(shù),若需要改變默認(rèn)參數(shù)的值則可以賦值的形式調(diào)用該函數(shù)。若不按順序提供默認(rèn)參數(shù)則需要把參數(shù)名寫上(即以賦值的形式)。默認(rèn)參數(shù)必須指向不變的參數(shù)(即不變對(duì)象,對(duì)象內(nèi)部的數(shù)據(jù)一旦創(chuàng)建就不能改變,在多任務(wù)環(huán)境下同時(shí)讀取對(duì)象不需要加鎖)

(3)       可變參數(shù),即傳入?yún)?shù)的個(gè)數(shù)是可變的。由于參數(shù)的個(gè)數(shù)不確定我們可以把參數(shù)作為一個(gè)list或tuple傳入,訪問時(shí)可以使用for循環(huán)訪問。如果直接利用可變參數(shù),定義可變參數(shù)和定義list或tuple參數(shù)相比僅僅在參數(shù)前面加一個(gè)*號(hào)。在涵數(shù)內(nèi)部參數(shù)接收到的是一個(gè)tuple,因此函數(shù)代碼完全不變,但是,調(diào)用函數(shù)時(shí)可以傳入任意個(gè)參數(shù),包括0個(gè)參數(shù)。如果已經(jīng)有一個(gè)list或tuple要調(diào)用一個(gè)可變參數(shù)有兩種方法,一是分別取出各參數(shù)并傳入。二是在其前面加上一個(gè)*號(hào),把list或tuple的元素變成可變參數(shù)傳進(jìn)去。

(4)       關(guān)鍵字參數(shù),可變參數(shù)允許你傳入0個(gè)或任意個(gè)參數(shù),這些參數(shù)在函數(shù)調(diào)用時(shí)自動(dòng)組裝成一個(gè)tuple。而關(guān)鍵字參數(shù)允許你傳入0個(gè)或任意個(gè)含參數(shù)名的參數(shù),這些關(guān)鍵字參數(shù)在函數(shù)內(nèi)部自動(dòng)組裝為一個(gè)dict。如果傳入的關(guān)鍵字參數(shù)為dict則可以將函數(shù)中的那個(gè)參數(shù)前面加兩個(gè)**號(hào)。

(5)       命名關(guān)鍵字參數(shù),用于限制關(guān)鍵字的名字。和關(guān)鍵字參數(shù)**kw不同,命名關(guān)鍵字參數(shù)需要一個(gè)特殊分隔符*,*后面的參數(shù)被視為命名關(guān)鍵字參數(shù)。如果函數(shù)定義中已經(jīng)有了一個(gè)可變參數(shù),后面跟著的命名參數(shù)就不需要一個(gè)特殊分隔符*號(hào)了。命名關(guān)鍵字參數(shù)必須傳入?yún)?shù)名,這和位置參數(shù)不同。如果沒有傳入?yún)?shù)名,調(diào)用將報(bào)錯(cuò)。

注意:參數(shù)的定義順序是:必選參數(shù)、默認(rèn)參數(shù)(一定要用不可變對(duì)象)、可變參數(shù)、命名關(guān)鍵字參數(shù)、關(guān)鍵字參數(shù)  def f(a,b,c=0,*,d,**kw),對(duì)于任意函數(shù)都可以通過類似fun(*arg,**kw)的形式調(diào)用它,無論它的參數(shù)是如何定義的。

*arg是可變參數(shù),arg接收的是tuple

**kw是關(guān)鍵字參數(shù),kw接收的是dict

可變參數(shù)即可以直接傳入:fun(1,2,3),又可以先組裝list或tuple,再通過*arg傳入:func(*(1,2,3));

關(guān)鍵字參數(shù)既可以直接傳入:fun(a=1,b=2),又可以先組裝dict,再通過**kw傳入:function(**{‘a(chǎn)':1,'b':2})

相關(guān)文章

最新評(píng)論

勐海县| 百色市| 德州市| 长海县| 东山县| 兖州市| 广河县| 枝江市| 盱眙县| 奉节县| 万州区| 商南县| 黄龙县| 嘉峪关市| 手机| 子洲县| 张北县| 金秀| 新宾| 鄂伦春自治旗| 万山特区| 洛隆县| 曲麻莱县| 曲水县| 谢通门县| 喀喇沁旗| 江达县| 和林格尔县| 河北省| 泉州市| 临夏县| 绥化市| 乐陵市| 阳山县| 香格里拉县| 敖汉旗| 南京市| 柳河县| 龙南县| 姚安县| 平利县|