在Python 3.0中,可以給函數(shù)對(duì)象附加注解信息。這些信息會(huì)附加到函數(shù)對(duì)象的__annotations__屬性。
如下是一個(gè)不帶注解的函數(shù),它編寫為帶有3個(gè)參數(shù)并且返回一個(gè)結(jié)果:
def func(a,b,c):
... return a + b + c
...
func(1,2,3)
6
從語(yǔ)法上講,函數(shù)注解編寫在def頭部行。對(duì)于參數(shù),它們出現(xiàn)在緊隨參數(shù)名之后的冒號(hào)之后;對(duì)于返回值,它們編寫于緊跟在參數(shù)列表之后的一個(gè)->之后。例如,這段代碼,注解了前面函數(shù)的3個(gè)參數(shù)及其返回值:
def func(a: 'spam',b: (1,10),c: float) -> int:
... return a + b + c
...
func(1,2,3)
6
Python將注解信息收集到字典中并且將它們附加給函數(shù)對(duì)象自身。參數(shù)名變成鍵,如果編寫了返回值注解的話,它存儲(chǔ)在鍵“return”下:
func.annotations
{'a': 'spam','c':
下面的例子只是注解了3個(gè)參數(shù)中的兩個(gè):
def func(a: 'spam',b,c: 99):
... return a + b + c
...
func(1,2,3)
6
func.annotations
{'a': 'spam','c': 99}
for arg in func. annotations :
... print(arg,'=>',func. annotations [arg])
...
a => spam
c => 99
如果編寫了注解的話,仍然可以對(duì)參數(shù)使用默認(rèn)值——注解出現(xiàn)在默認(rèn)值之前。例如,下面的a: 'spam' = 4意味著參數(shù)a的默認(rèn)值是4,并且用字符串'spam'注解它:
def func(a: 'spam' = 4,b: (1,10) = 5,c: float = 6) -> int:
... return a + b + c
...
func(1,2,3)
6
func() # 4 + 5 + 6 (all defaults)
15
func(1,c=10) # 1 + 5 + 10 (keywords work normally)
16
func.annotations
{'a': 'spam','c':
-
函數(shù)
+關(guān)注
關(guān)注
3文章
4380瀏覽量
64849 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86708 -
注解
+關(guān)注
關(guān)注
0文章
18瀏覽量
2766
發(fā)布評(píng)論請(qǐng)先 登錄
pytest學(xué)習(xí)筆記有哪些?
STC15F2K60S2系列學(xué)習(xí)板電路圖資料分享
Python學(xué)習(xí)之網(wǎng)絡(luò)編程Socket分享
Python機(jī)器學(xué)習(xí)入門之pandas的使用提示
新唐科技宣布推出NuMicro M051系列學(xué)習(xí)板Nu-LB
學(xué)習(xí)Python的發(fā)展方向
python函數(shù)概念理解
python機(jī)器學(xué)習(xí)筆記資料免費(fèi)下載
OpenStack之Cinder學(xué)習(xí)筆記

3、【STM32F0系列學(xué)習(xí)】之—中斷和事件

ROS 學(xué)習(xí)筆記之五:對(duì)Arduino環(huán)境刮目相看

2、【STM32F0系列學(xué)習(xí)】之—通用輸入輸出端口(GPIO)

STC8系列學(xué)習(xí)筆記(一) 數(shù)碼管的驅(qū)動(dòng)設(shè)計(jì)

評(píng)論