Python函數(shù)關(guān)鍵字參數(shù)及用法詳解
目前為止,我們使用函數(shù)時(shí)所用的參數(shù)都是位置參數(shù),即傳入函數(shù)的實(shí)際參數(shù)必須與形式參數(shù)的數(shù)量和位置對(duì)應(yīng)。而本節(jié)將介紹的關(guān)鍵字參數(shù),則可以避免牢記參數(shù)位置的麻煩,令函數(shù)的調(diào)用和參數(shù)傳遞更加靈活方便。
關(guān)鍵字參數(shù)是指使用形式參數(shù)的名字來(lái)確定輸入的參數(shù)值。通過(guò)此方式指定函數(shù)實(shí)參時(shí),不再需要與形參的位置完全一致,只要將參數(shù)名寫(xiě)正確即可。
因此,Python 函數(shù)的參數(shù)名應(yīng)該具有更好的語(yǔ)義,這樣程序可以立刻明確傳入函數(shù)的每個(gè)參數(shù)的含義。
例如,在下面的程序中就使用到了關(guān)鍵字參數(shù)的形式給函數(shù)傳參:
def dis_str(str1,str2): print("str1:",str1) print("str2:",str2) #位置參數(shù) dis_str("http://jb51.nett/python/","http://jb51.net/shell/") #關(guān)鍵字參數(shù) dis_str("http://jb51.net/python/",str2="http://jb51.net/shell/") dis_str(str2="http://jb51.net/python/",str1="http://jb51.net/shell/")
程序執(zhí)行結(jié)果為:
str1: http://jb51.net/python/
str2: http://jb51.net/shell/
str1: http://jb51.net/python/
str2: http://jb51.net/shell/
str1: http://jb51.net/shell/
str2: http://jb51.net/python/
可以看到,在調(diào)用有參函數(shù)時(shí),既可以根據(jù)位置參數(shù)來(lái)調(diào)用,也可以使用關(guān)鍵字參數(shù)(程序中第 8 行)來(lái)調(diào)用。在使用關(guān)鍵字參數(shù)調(diào)用時(shí),可以任意調(diào)換參數(shù)傳參的位置。
當(dāng)然,還可以像第 7 行代碼這樣,使用位置參數(shù)和關(guān)鍵字參數(shù)混合傳參的方式。但需要注意,混合傳參時(shí)關(guān)鍵字參數(shù)必須位于所有的位置參數(shù)之后。也就是說(shuō),如下代碼是錯(cuò)誤的:
# 位置參數(shù)必須放在關(guān)鍵字參數(shù)之前,下面代碼錯(cuò)誤 dis_str(str1="http://jb51.net/python/","http://jb51.net/shell/")
Python 解釋器會(huì)報(bào)如下錯(cuò)誤:
SyntaxError: positional argument follows keyword argument
到此這篇關(guān)于Python函數(shù)關(guān)鍵字參數(shù)及用法詳解的文章就介紹到這了,更多相關(guān)Python函數(shù)關(guān)鍵字參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
學(xué)會(huì)python自動(dòng)收發(fā)郵件 代替你問(wèn)候女友
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)自動(dòng)收發(fā)郵件,代替你問(wèn)候女友,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-05-05GitHub 熱門(mén):Python 算法大全,Star 超過(guò) 2 萬(wàn)
4 月 27 日,GitHub 趨勢(shì)榜第 3 位是一個(gè)用 Python 編碼實(shí)現(xiàn)的算法庫(kù),Star 數(shù)早已達(dá)到 26000+2019-04-04Python設(shè)計(jì)模式之門(mén)面模式簡(jiǎn)單示例
這篇文章主要介紹了Python設(shè)計(jì)模式之門(mén)面模式,簡(jiǎn)單描述了門(mén)面模式的概念、原理,并結(jié)合實(shí)例形式給出了Python定義與使用門(mén)面模式的具體操作技巧,需要的朋友可以參考下2018-01-01ubuntu系統(tǒng)下使用pm2設(shè)置nodejs開(kāi)機(jī)自啟動(dòng)的方法
今天小編就為大家分享一篇ubuntu系統(tǒng)下使用pm2設(shè)置nodejs開(kāi)機(jī)自啟動(dòng)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-05-05Python 支付整合開(kāi)發(fā)包的實(shí)現(xiàn)
這篇文章主要介紹了Python 支付整合開(kāi)發(fā)包的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-01-01讓你的Python代碼實(shí)現(xiàn)類(lèi)型提示功能
今天小編就為大家分享一篇讓你的Python代碼實(shí)現(xiàn)類(lèi)型提示功能,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11Numpy中的數(shù)組搜索中np.where方法詳細(xì)介紹
這篇文章主要介紹了Numpy中的數(shù)組搜索中np.where方法詳細(xì)介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01基于YUV 數(shù)據(jù)格式詳解及python實(shí)現(xiàn)方式
今天小編就為大家分享一篇基于YUV 數(shù)據(jù)格式詳解及python實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-12-12