日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:詳說Python風格的函數(shù)分配參數(shù)

一、分配參數(shù)的定義

參數(shù)收集就是在定義函數(shù)時不能確認參數(shù)個數(shù),用收集參數(shù)將調(diào)用時不確定數(shù)量的實參存放到收集參數(shù)的元組中。分配參數(shù)與此過程相反,它不是在定義函數(shù)形參時使用星號(1個或2個),而是在調(diào)用函數(shù)傳遞實參時使用星號(1個或2個)來傳遞多個參數(shù)。

二、分配參數(shù)的使用

1.使用1個星號的分配參數(shù)

使用1個星號的實參時,實參為一個元組、列表、字典或集合,該實參內(nèi)的元素將按參數(shù)順序傳遞給函數(shù),但由于字典實際傳值取的是鍵,集合的元素沒有順序,因此不建議使用字典和集合傳值。

舉例:

>>> def ?cal(calmethod,number1,number2,*numbers):
    print('number1=',number1,',number2=',number2,',numbers=',numbers,', calmethod=',calmethod)

>>> paras=('+',1,2,3,4) #元組分配參數(shù)傳值
>>> cal(*pars)
number1= 1 ,number2= 2 ,numbers= (3, 4) , calmethod= +
>>> paras=['+',1,2,3,4]
>>> cal(*paras) #列表分配參數(shù)傳值
number1= 1 ,number2= 2 ,numbers= (3, 4) , calmethod= +
>>> paras={'+',1,2,3,4}
>>> cal(*paras) #集合分配參數(shù)傳值,順序變化了
number1= 2 ,number2= 3 ,numbers= (4, '+') , calmethod= 1
>>> paras={'+':10,1:20,2:30,3:40,4:50}
>>> cal(*paras) #字典分配參數(shù)傳值,取的是鍵作為參數(shù)
number1= 1 ,number2= 2 ,numbers= (3, 4) , calmethod= +

從上面的例子可以看出,一個星號的收集參數(shù)可以通過1個星號的分配參數(shù)方式傳值。

分配參數(shù)實際上就是將實參傳遞的序列數(shù)據(jù)解包給對應形參的過程。

2.使用2個星號的分配參數(shù)

使用2個星號的實參時,實參為一個字典,該字典內(nèi)的元素將按關鍵字參數(shù)模式傳遞給函數(shù),其中的鍵為關鍵字參數(shù),值為關鍵字參數(shù)對應的實參值。使用這種模式要求該實參位于參數(shù)列表末尾。還是以上面函數(shù)為例:

\>>> paras={'calmethod':'+','number1':1,'number2':2,'numbers':[3,4,5]}
\>>> cal(**paras) #報錯遇到?jīng)]有預期的關鍵字參數(shù)'numbers'
\>>> paras={'calmethod':'+','number1':1,'number2':2,'numbers':(3,4,5)}
\>>> cal(**paras) #報錯遇到?jīng)]有預期的關鍵字參數(shù)'numbers'
\>>> paras={'calmethod':'+','number1':1,'number2':2,'*numbers':(3,4,5)}
\>>> cal(**paras) #報錯遇到?jīng)]有預期的關鍵字參數(shù)'*numbers'
\>>> paras={'calmethod':'+','number1':1,'number2':2}
\>>> cal(**paras)
number1= 1 ,number2= 2 ,numbers= () , calmethod= +

從上面的案例可以看出來:

1)  兩個星號的參數(shù)分配不能給兩個星號的收集參數(shù)傳值,因為這沒有意義,還不如直接使用形參為字典類型實參是字典數(shù)據(jù)進行操作。2)  分配參數(shù)模式和收集參數(shù)模式可以并存,如上面的例子,但這種使用方式意義不大,一般不建議使用。


分享名稱:創(chuàng)新互聯(lián)Python教程:詳說Python風格的函數(shù)分配參數(shù)
網(wǎng)頁網(wǎng)址:http://www.5511xx.com/article/cogieie.html