溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Python函數(shù)之位置參數(shù)、關(guān)鍵字參數(shù)的案例分析

發(fā)布時(shí)間:2020-11-03 09:53:44 來(lái)源:億速云 閱讀:185 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹了Python函數(shù)之位置參數(shù)、關(guān)鍵字參數(shù)的案例分析,具有一定借鑒價(jià)值,需要的朋友可以參考下。希望大家閱讀完這篇文章后大有收獲。下面讓小編帶著大家一起了解一下。

一、關(guān)于函數(shù)的語(yǔ)法

1.語(yǔ)法

def 函數(shù)名([參數(shù)]):
函數(shù)文檔字符串
函數(shù)體

2.函數(shù)名:是必須符合Python名稱(chēng)規(guī)范要求的標(biāo)識(shí)符,需要避免使用Python的關(guān)鍵字;

3.參數(shù):稱(chēng)為函數(shù)的形參,調(diào)用時(shí)傳遞的真實(shí)數(shù)據(jù)稱(chēng)為實(shí)參,函數(shù)的參數(shù)可以沒(méi)有,也可以是多個(gè)甚至可變個(gè)數(shù);

4.函數(shù)文檔字符串:在“Python語(yǔ)句的補(bǔ)充和修訂”那節(jié)老猿已經(jīng)介紹,是很有用的東西,對(duì)于提高代碼的可讀性和用戶(hù)體驗(yàn)很有幫助,注意必須與函數(shù)體一樣與函數(shù)定義行保持縮進(jìn),具體內(nèi)容在此老猿不再贅述;

5.函數(shù)體:定義函數(shù)具體的操作代碼,如果需要返回值,必須使用return語(yǔ)句返回,唯一例外是生成器函數(shù)使用yield返回值。如果函數(shù)沒(méi)有返回值,可以不使用return或return后不跟返回值或return None即可。

二、函數(shù)的位置參數(shù)

函數(shù)的參數(shù)在調(diào)用時(shí)傳遞數(shù)據(jù)時(shí),默認(rèn)是按參數(shù)的位置順序傳值,即形參的順序與實(shí)參的順序逐一對(duì)應(yīng),這種參數(shù)的使用模式稱(chēng)為位置參數(shù)。位置參數(shù)是最常用的一種參數(shù)使用形式。

使用位置參數(shù)傳遞實(shí)參的情況下,要求有缺省值的參數(shù)放在無(wú)缺省值的參數(shù)后面,如果某個(gè)有缺省值的參數(shù)需要使用位置參數(shù)方式傳遞非缺省值,則需要確保該參數(shù)前面的所有參數(shù)都有實(shí)參傳入。

>>> def cal(method,number1,number2):  #使用位置參數(shù)傳參
    if method=='+':return number1+number2
    elif method=='-':return number1-number2
    else:return None

>>> cal('+',1,2)
3
>>> def cal(method='+',number1,number2):  #帶缺省值參數(shù)不能放在無(wú)缺省值參數(shù)的前面
    if method=='+':return number1+number2
    elif method=='-':return number1-number2
    else:return None
    
SyntaxError: non-default argument follows default argument
>>> def cal(number1,number2,method='+'):  #帶缺省值參數(shù)放在無(wú)缺省值參數(shù)的后面
    if method=='+':return number1+number2
    elif method=='-':return number1-number2
    else:return None
    
>>> cal(1,2)
3
>>> cal(1,2,'-')
-1

執(zhí)行截圖:

Python函數(shù)之位置參數(shù)、關(guān)鍵字參數(shù)的案例分析    

三、函數(shù)的關(guān)鍵字參數(shù)

除了位置參數(shù)的函數(shù)參數(shù)使用方式,還有一種在函數(shù)調(diào)用時(shí)指定形參等于指定實(shí)參的參數(shù)使用模式,該模式稱(chēng)為關(guān)鍵字參數(shù)。關(guān)鍵字參數(shù)使用可以不按形參的順序傳遞實(shí)參,系統(tǒng)按形參的名字確認(rèn)實(shí)參傳遞給哪個(gè)參數(shù)。如:

def minus(minuend,subtractor): ? ?return minuend-subtractor ?#定義一個(gè)減法函數(shù)
minus(10,2) #結(jié)果為8
minus(2,10) #結(jié)果為-8
minus(subtractor=10,minuend=2) #結(jié)果為-8

四、小結(jié)

位置參數(shù)和關(guān)鍵字參數(shù)都是函數(shù)調(diào)用傳遞參數(shù)的常規(guī)方法,兩者在函數(shù)參數(shù)的使用與字符串格式化的format方法中的自動(dòng)編號(hào)索引format方法和關(guān)鍵字參數(shù)方式的format方法處理機(jī)制非常類(lèi)似。

在位置參數(shù)和關(guān)鍵字參數(shù)的使用上,需要注意在同一個(gè)函數(shù)定義中兩者盡量不混用,一般情況下,只有可選帶缺省值的參數(shù)多而無(wú)缺省值的位置參數(shù)比較少的情況下才混用。如果位置參數(shù)和關(guān)鍵字參數(shù)要混用,必須確保位置參數(shù)在前,關(guān)鍵字參數(shù)在后,這樣解釋器才能按照先用位置參數(shù)傳值,再用關(guān)鍵字參數(shù)傳值,沒(méi)有出現(xiàn)的參數(shù)使用缺省值;

舉例:

minus(subtractor=10,2) 
#報(bào)語(yǔ)法錯(cuò):SyntaxError: positional argument follows keyword argument

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享Python函數(shù)之位置參數(shù)、關(guān)鍵字參數(shù)的案例分析內(nèi)容對(duì)大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,遇到問(wèn)題就找億速云,詳細(xì)的解決方法等著你來(lái)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI