Python函數(shù)參數(shù)匹配模型通用規(guī)則keyword-only參數(shù)詳解
Python3對函數(shù)參數(shù)的排序規(guī)則更加通用化了,即Python3 keyword-only參數(shù),該參數(shù)即為必須只按照關鍵字傳遞而不會有一個位置參數(shù)來填充的參數(shù)。該規(guī)則在處理人一多個參數(shù)是很有用的。
keyword-only
kword_only(1, 2, 3, c=4) print('-' * 20) kword_only(a=1, c=3)
示例結果:
1 (2, 3) 4
--------------------
1 () 3
在 *args 之后的參數(shù)都需要在調(diào)用中使用關鍵字的方式傳遞,否則會拋出異常。
def kword_only(a, *b, c): print(a, b, c) kword_only(1, 2, 3)
異常結果:
kword_only(1, 2, 3)
TypeError: kword_only() missing 1 required keyword-only argument: 'c'
我們也可以在參數(shù)列表中使用一個 * 字符,表示函數(shù)不會接受變量長度的參數(shù)列表,而是要求 * 后面的參數(shù)都需要使用關鍵字參數(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)
示例結果:
1 2 3
--------------------
1 2 3
我們可以看到 a 可以利用位置參數(shù)進行傳遞,但是 b 、 c 必須通過關鍵字參數(shù)傳遞,否則就會拋出異常。
def kword_only(a, *, b, c): print(a, b, c) kword_only(1, 2, 3)
異常結果:
kword_only(1, 2, 3)
TypeError: kword_only() takes 1 positional argument but 3 were given
當然我們,可以通過對keyword-only參數(shù)使用默認值,這樣例中的 a 仍可以通過位置參數(shù)或者關鍵字參數(shù)傳遞,而 b 、 c 就是可選的了,當然如果需要傳遞的話仍然是要利用關鍵字參數(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)
示例結果:
1 2 3
--------------------
1 2 3
--------------------
11 22 33
總結
以上所述是小編給大家介紹的Python函數(shù)參數(shù)匹配模型通用規(guī)則keyword-only參數(shù)詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關文章
pytorch:torch.mm()和torch.matmul()的使用
今天小編就為大家分享一篇pytorch:torch.mm()和torch.matmul()的使用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12利用Python中SocketServer 實現(xiàn)客戶端與服務器間非阻塞通信
本文主要介紹了利用Python中SocketServer 實現(xiàn)客戶端與服務器間非阻塞通信示例代碼,具有很好的參考價值,需要的朋友一起來看下吧2016-12-12java中兩個byte數(shù)組實現(xiàn)合并的示例
今天小編就為大家分享一篇java中兩個byte數(shù)組實現(xiàn)合并的示例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05使用Python將圖片轉(zhuǎn)正方形的兩種方法實例代碼詳解
這篇文章主要介紹了使用Python將圖片轉(zhuǎn)正方形的兩種方法,本文通過實例代碼給大家給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04