Python函數(shù)元數(shù)據(jù)實現(xiàn)為一個參數(shù)指定多個類型
Python函數(shù)元數(shù)據(jù)為一個參數(shù)指定多個類型
加上引號就好了
def foo(value: 'str|int|float|list|tuple'): print(value) foo(None)
Python函數(shù)元數(shù)據(jù)使用筆記
由于Python是一門解釋型語言,在Python中定義變量不需要指明類型,所以當(dāng)我們在編寫函數(shù)時,可以為函數(shù)的參數(shù)添加一些額外的信息來指明變量類型,以方便其他人使用。
因此,可以使用函數(shù)參數(shù)注解來提示使用者傳入變量的類型。
例如:
def Test(a:int,b:float)->float: return a*b print(Test(1,2.7)) print(Test.__annotations__)
Result:
如圖,函數(shù)的注解表示:輸入的變量a為int型,輸入的變量b為float型,函數(shù)的返回值為float型。
Python解釋器不會對這些注解添加任何語義,也不會使用注解對傳入的變量進行類型檢查,而在函數(shù)運行時與沒有加注解之前的效果也沒有任何的差距。
然而,給函數(shù)添加注解對函數(shù)的使用者和閱讀源碼的人來說幫助很大。
有的第三方工具和框架可能會對這些注解添加語義。同時,這些注解也會出現(xiàn)在文檔中。
Result:
函數(shù)的注解儲存在函數(shù)的__annotations__屬性中,盡管注解的使用方法可能有很多種,但是注解的主要用途還是文檔,因為在Python中沒有類型聲明,通常僅僅通過閱讀源碼很難知道應(yīng)該傳遞什么樣的參數(shù)給函數(shù),此時使用注解就能給使用者更多的提示,使使用者可以正確的使用函數(shù)。
Reference:
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Keras搭建分類網(wǎng)絡(luò)平臺VGG16?MobileNet?ResNet50
這篇文章主要為大家介紹了Keras搭建分類網(wǎng)絡(luò)平臺VGG16?MobileNet?ResNet50,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-05-05Python數(shù)值求解微分方程方法(歐拉法,隱式歐拉)
這篇文章主要介紹了Python數(shù)值求解微分方程方法(歐拉法,隱式歐拉),文章圍繞主題展開詳細的內(nèi)介紹,具有一定的參考價值,需要的小伙伴可以參考一下2022-09-09Python PyQt5學(xué)習(xí)之樣式設(shè)置詳解
這篇文章主要為大家詳細介紹了Python PyQt5中樣式設(shè)置的相關(guān)資料,例如為標簽添加背景圖片、為按鈕添加背景圖片、設(shè)置窗口透明等,感興趣的可以學(xué)習(xí)一下2022-12-12python3實現(xiàn)字符串的全排列的方法(無重復(fù)字符)
這篇文章主要介紹了python3實現(xiàn)字符串的全排列的方法(無重復(fù)字符),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07在ironpython中利用裝飾器執(zhí)行SQL操作的例子
這篇文章主要介紹了在ironpython中利用裝飾器執(zhí)行SQL操作的例子,文章中以操作MySQL為例,需要的朋友可以參考下2015-05-05Tensorflow實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)用于人臉關(guān)鍵點識別
這篇文章主要介紹了Tensorflow實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)用于人臉關(guān)鍵點識別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03django-xadmin根據(jù)當(dāng)前登錄用戶動態(tài)設(shè)置表單字段默認值方式
這篇文章主要介紹了django-xadmin根據(jù)當(dāng)前登錄用戶動態(tài)設(shè)置表單字段默認值方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03