在Python 3.0中,可以給函數(shù)對象附加注解信息。這些信息會(huì)附加到函數(shù)對象的__annotations__屬性。
如下是一個(gè)不帶注解的函數(shù),它編寫為帶有3個(gè)參數(shù)并且返回一個(gè)結(jié)果:
def func(a,b,c):
... return a + b + c
...
func(1,2,3)
6
從語法上講,函數(shù)注解編寫在def頭部行。對于參數(shù),它們出現(xiàn)在緊隨參數(shù)名之后的冒號之后;對于返回值,它們編寫于緊跟在參數(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ù)對象自身。參數(shù)名變成鍵,如果編寫了返回值注解的話,它存儲在鍵“return”下:
func.annotations
{'a': 'spam','c': ,'b': (1,10),'return': }
下面的例子只是注解了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
如果編寫了注解的話,仍然可以對參數(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': ,'b': (1,10),'return': }
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
fixure為什么不能調(diào)用低級別的fixure?pytest.mark.usefixure注解在類上面和寫在方法入?yún)⒗锩嬗惺裁床顒e?pytest學(xué)習(xí)筆記匯總
發(fā)表于 11-04 09:23
本次分享的是來自STC官網(wǎng)的STC15F2K60S2系列學(xué)習(xí)板-32KSRAM電路圖。STC15F2K60S2單片機(jī)是一種增強(qiáng)型的8051單片機(jī),是新型的FLASH單片機(jī),與傳統(tǒng)的8051系列單片機(jī)
發(fā)表于 11-09 14:30
Python學(xué)習(xí)之網(wǎng)絡(luò)編程Socket
發(fā)表于 07-02 08:18
系列文章目錄提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動(dòng)添加例如:第一章 Python 機(jī)器學(xué)習(xí)入門之pandas的使用提示
發(fā)表于 08-13 07:36
新唐科技宣布推出NuMicro M051 系列學(xué)習(xí)板 Nu-LB-M051。該學(xué)習(xí)版特別針對想要入門或評估新唐NuMicro M051 系列 MCU所規(guī)劃。Nu-LB-M051為功能完整且便利型的入門型
發(fā)表于 11-26 08:53
?1518次閱讀
編程方向; Python 基礎(chǔ)學(xué)習(xí) Python 語句 學(xué)習(xí)python 的運(yùn)算符和表達(dá)式,聲明語句,基本的輸入輸出語句、注釋語句、流程控制
發(fā)表于 04-02 15:43
?7484次閱讀
函數(shù)是可以實(shí)現(xiàn)一些特定功能的小方法或是小程序。在Python中有很多內(nèi)建函數(shù),當(dāng)然隨著學(xué)習(xí)的深入,我們可以學(xué)會(huì)創(chuàng)建對自己有用的函數(shù)。
發(fā)表于 01-18 17:37
?2283次閱讀
本文檔的主要內(nèi)容詳細(xì)介紹的是python機(jī)器學(xué)習(xí)筆記資料免費(fèi)python機(jī)器學(xué)習(xí)筆記資料免費(fèi)下載
發(fā)表于 03-01 10:09
?39次下載
OpenStack之Cinder學(xué)習(xí)筆記(開關(guān)電源技術(shù)教程ppt)-該文檔為OpenStack之Cinder學(xué)習(xí)
發(fā)表于 09-23 12:40
?5次下載
【STM32F0系列學(xué)習(xí)】之—中斷和事件1、什么是“中斷”2、中斷優(yōu)先級3、中斷嵌套4、嵌套向量中斷控制器 (NVIC)5、中斷與事件的區(qū)別和主要特性6、外部中斷(EXTI)配置6.1【標(biāo)準(zhǔn)庫
發(fā)表于 11-26 12:21
?9次下載
ROS 學(xué)習(xí)筆記之五:對Arduino環(huán)境刮目相看
發(fā)表于 11-29 09:51
?2次下載
【STM32F0系列學(xué)習(xí)】之—通用輸入輸出端口GPIO1、GPIO端口配置說明1、GPIO端口配置說明
發(fā)表于 11-29 16:51
?66次下載
HT32F52352學(xué)習(xí)筆記之六
發(fā)表于 12-02 20:36
?6次下載
STC8系列學(xué)習(xí)筆記(一) 數(shù)碼管的驅(qū)動(dòng)設(shè)計(jì)暑假從實(shí)驗(yàn)室借了一塊stc8的開發(fā)板,簡單的記錄下自己學(xué)習(xí)的過程。我不知道咋分類的,因?yàn)槲沂俏锫?lián)網(wǎng)工程專業(yè)的,就分類到物聯(lián)網(wǎng)把。剛開始首先
發(fā)表于 12-22 18:48
?14次下載
Python函數(shù)比我們想象的更為靈活。由于Python函數(shù)是對象,所以函數(shù)對象可以賦值給其他的名字、傳遞給其他
發(fā)表于 02-21 14:24
?478次閱讀
評論