Python函數(shù)參數(shù)匹配模型通用規(guī)則keyword-only參數(shù)詳解
Python3對(duì)函數(shù)參數(shù)的排序規(guī)則更加通用化了,即Python3 keyword-only參數(shù),該參數(shù)即為必須只按照關(guān)鍵字傳遞而不會(huì)有一個(gè)位置參數(shù)來填充的參數(shù)。該規(guī)則在處理人一多個(gè)參數(shù)是很有用的。
keyword-only
kword_only(1, 2, 3, c=4)
print('-' * 20)
kword_only(a=1, c=3)
示例結(jié)果:
1 (2, 3) 4
--------------------
1 () 3
在 *args 之后的參數(shù)都需要在調(diào)用中使用關(guān)鍵字的方式傳遞,否則會(huì)拋出異常。
def kword_only(a, *b, c): print(a, b, c) kword_only(1, 2, 3)
異常結(jié)果:
kword_only(1, 2, 3)
TypeError: kword_only() missing 1 required keyword-only argument: 'c'
我們也可以在參數(shù)列表中使用一個(gè) * 字符,表示函數(shù)不會(huì)接受變量長(zhǎng)度的參數(shù)列表,而是要求 * 后面的參數(shù)都需要使用關(guān)鍵字參數(shù)的方式傳遞。
def kword_only(a, *, b, c):
print(a, b, c)
kword_only(1, b=2, c=3)
print('-'*20)
kword_only(b=2, c=3, a=1)
示例結(jié)果:
1 2 3
--------------------
1 2 3
我們可以看到 a 可以利用位置參數(shù)進(jìn)行傳遞,但是 b 、 c 必須通過關(guān)鍵字參數(shù)傳遞,否則就會(huì)拋出異常。
def kword_only(a, *, b, c): print(a, b, c) kword_only(1, 2, 3)
異常結(jié)果:
kword_only(1, 2, 3)
TypeError: kword_only() takes 1 positional argument but 3 were given
當(dāng)然我們,可以通過對(duì)keyword-only參數(shù)使用默認(rèn)值,這樣例中的 a 仍可以通過位置參數(shù)或者關(guān)鍵字參數(shù)傳遞,而 b 、 c 就是可選的了,當(dāng)然如果需要傳遞的話仍然是要利用關(guān)鍵字參數(shù)進(jìn)行傳遞的。
def kword_only(a, *, b=2, c=3):
print(a, b, c)
kword_only(1)
print('-'*20)
kword_only(a=1)
print('-'*20)
kword_only(b=22, c=33, a=11)
示例結(jié)果:
1 2 3
--------------------
1 2 3
--------------------
11 22 33
總結(jié)
以上所述是小編給大家介紹的Python函數(shù)參數(shù)匹配模型通用規(guī)則keyword-only參數(shù)詳解,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
解決python matplotlib imshow無法顯示的問題
今天小編就為大家分享一篇解決python matplotlib imshow無法顯示的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05
TensorFlow 實(shí)戰(zhàn)之實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的實(shí)例講解
下面小編就為大家分享一篇TensorFlow 實(shí)戰(zhàn)之實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)的實(shí)例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-02-02
Python辦公自動(dòng)化之發(fā)送電子郵件和Outlook集成
Python辦公?動(dòng)化是利?Python編程語(yǔ)?來創(chuàng)建腳本和程序,以簡(jiǎn)化、加速和?動(dòng)化?常辦公任務(wù)和?作流程的過程,本文主要介紹一下如何利用Python實(shí)現(xiàn)發(fā)送電子郵件和Outlook集成,需要的可以參考下2023-12-12
Python 批量下載陰陽(yáng)師網(wǎng)站壁紙
學(xué)習(xí)要始于興趣,自己學(xué)習(xí)python的一大初衷是希望能用于寫一些簡(jiǎn)單的游戲腳本,能服務(wù)于生活。所以決定試著直接從爬取我最愛玩的陰陽(yáng)師網(wǎng)站的一些壁紙開始2021-05-05
Python實(shí)現(xiàn)上下班搶個(gè)順風(fēng)單腳本
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)上下班搶個(gè)順風(fēng)單腳本,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02

