這篇文章將為大家詳細講解有關(guān)Python函數(shù)參數(shù)匹配模型規(guī)則keyword-only參數(shù)是什么,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
南山網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司于2013年開始到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)公司。
Python函數(shù)參數(shù)匹配模型通用規(guī)則keyword-only參數(shù)
概述
Python3對函數(shù)參數(shù)的排序規(guī)則更加通用化了,即Python3 keyword-only參數(shù),該參數(shù)即為必須只按照關(guān)鍵字傳遞而不會有一個位置參數(shù)來填充的參數(shù)。該規(guī)則在處理人一多個參數(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)鍵字的方式傳遞,否則會拋出異常。
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ù)列表中使用一個*字符,表示函數(shù)不會接受變量長度的參數(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ù)進行傳遞,但是b、c必須通過關(guān)鍵字參數(shù)傳遞,否則就會拋出異常。
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
當然我們,可以通過對keyword-only參數(shù)使用默認值,這樣例中的a仍可以通過位置參數(shù)或者關(guān)鍵字參數(shù)傳遞,而b、c就是可選的了,當然如果需要傳遞的話仍然是要利用關(guān)鍵字參數(shù)進行傳遞的。
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
更多的Python學(xué)習(xí)教程晚些會繼續(xù)為大家更新,或者你們有什么想學(xué)想看的Python學(xué)習(xí)教程也可以留言哦!
關(guān)于Python函數(shù)參數(shù)匹配模型規(guī)則keyword-only參數(shù)是什么就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。