Python 3.0的Keyword-Only參數(shù)就是指必須只按照關(guān)鍵字傳遞參數(shù)。
出現(xiàn)在參數(shù)列表中的*args之后的所有參數(shù)都必須在調(diào)用中使用關(guān)鍵字語法來傳遞。例如,在如下的代碼中,a可以按照名稱或位置傳遞,b會(huì)收集任何額外的位置參數(shù),而c必須只按照關(guān)鍵字傳遞:
> > > def kwonly(a,*b,c):
... print(a,b,c)
...
> > > kwonly(1,2,c=3)
1 (2,) 3
> > > kwonly(a=1,c=3)
1 () 3
> > > kwonly(1,2,3)
TypeError: kwonly() needs keyword-only argument c
我們也可以在參數(shù)列表中使用一個(gè)*字符,來表示一個(gè)函數(shù)不會(huì)接受一個(gè)變長的參數(shù)列表,并且要求跟在*后面的所有參數(shù)都作為關(guān)鍵字傳遞。在下面的函數(shù)中,a可以按照位置或名稱傳遞,但b和c必須按照關(guān)鍵字傳遞:
> > > def kwonly(a,*,b,c):
... print(a,b,c)
...
> > > kwonly(1,c=3,b=2)
1 2 3
> > > kwonly(c=3,b=2,a=1)
1 2 3
> > > kwonly(1,2,3)
TypeError: kwonly() takes exactly 1 positional argument (3 given)
> > > kwonly(1)
TypeError: kwonly() needs keyword-only argument b
我們?nèi)匀豢梢詫?duì)keyword-only參數(shù)使用默認(rèn)值。在下面的代碼中,a可以按照名稱或位置傳遞,而b和c是可選的,但是如果使用的話必須按照關(guān)鍵字傳遞:
> > > def kwonly(a,*,b='spam',c='ham'):
... print(a,b,c)
...
> > > kwonly(1)
1 spam ham
> > > kwonly(1,c=3)
1 spam 3
> > > kwonly(a=1)
1 spam ham
> > > kwonly(c=3,b=2,a=1)
1 2 3
> > > kwonly(1,2)
TypeError: kwonly() takes exactly 1 positional argument (2 given)
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4346瀏覽量
62968 -
代碼
+關(guān)注
關(guān)注
30文章
4825瀏覽量
69043 -
python3
+關(guān)注
關(guān)注
0文章
18瀏覽量
3927
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
keil設(shè)置里面,字體顏色選項(xiàng)中沒有keyword怎么解決??
使用python設(shè)定相關(guān)參數(shù)
適用于非None測試的Python程序分享
python11個(gè)案例講解函數(shù)參數(shù)
Python編程之SQLITE-DTU701 輝為科技
電源變換適用于非獨(dú)立源碼_適用于非None測試的Python程序
![電源變換適用于非獨(dú)立源碼_適用于非None測試的<b class='flag-5'>Python</b>程序](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評(píng)論