Python 3.0的Keyword-Only參數就是指必須只按照關鍵字傳遞參數。
出現在參數列表中的*args之后的所有參數都必須在調用中使用關鍵字語法來傳遞。例如,在如下的代碼中,a可以按照名稱或位置傳遞,b會收集任何額外的位置參數,而c必須只按照關鍵字傳遞:
> > > 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
我們也可以在參數列表中使用一個*字符,來表示一個函數不會接受一個變長的參數列表,并且要求跟在*后面的所有參數都作為關鍵字傳遞。在下面的函數中,a可以按照位置或名稱傳遞,但b和c必須按照關鍵字傳遞:
> > > 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
我們仍然可以對keyword-only參數使用默認值。在下面的代碼中,a可以按照名稱或位置傳遞,而b和c是可選的,但是如果使用的話必須按照關鍵字傳遞:
> > > 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)
-
函數
+關注
關注
3文章
4371瀏覽量
64218 -
代碼
+關注
關注
30文章
4887瀏覽量
70266 -
python3
+關注
關注
0文章
18瀏覽量
4037
發布評論請先 登錄
keil設置里面,字體顏色選項中沒有keyword怎么解決??
使用python設定相關參數
適用于非None測試的Python程序分享
python11個案例講解函數參數
Python編程之SQLITE-DTU701 輝為科技
電源變換適用于非獨立源碼_適用于非None測試的Python程序

評論