您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何使Python代碼實(shí)現(xiàn)類型提示功能,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
Python是一種動(dòng)態(tài)類型語言,這意味著我們在編寫代碼的時(shí)候更為自由,但是與此同時(shí)IDE無法向靜態(tài)類型語言那樣分析代碼,及時(shí)給我們相應(yīng)的提示。為了解決這個(gè)問題,Python 3.6 新增了幾個(gè)特性PEP 484和PEP 526,幫助編輯器為我們提供更智能的提示。這些新特性不會(huì)影響語言本身,只是增加一點(diǎn)提示。當(dāng)你使用比較智能的開發(fā)工具比如PyCHarm時(shí),就會(huì)感覺到類型提示的方便之處。
變量注解
首先先看看變量注解。它的語法和某些類型后置的語言類似。
# 變量注解 a: int = 5 b: bool = True f: float = 5.0 s: str = "abc"
聲明類型之后,編輯器和IDE就會(huì)讀取到這個(gè)類型注解,然后給予我們相應(yīng)的提示。程序在運(yùn)行的時(shí)候行為完全不變。
如果是自己編寫的類,也可以用作變量注解。
class MyClass: def fun1(self): print("fun1") me: MyClass = MyClass() me.fun1()
對于較復(fù)雜的內(nèi)置類型、泛型、生成器、自定義類型等,需要引入標(biāo)準(zhǔn)庫typing。對于更復(fù)雜的類型,請直接參考typing標(biāo)準(zhǔn)庫文檔。
from typing import TypeVar, Iterable, Tuple, Dict, List m: Dict[int, int] = {1: 1, 2: 2} t: Tuple[int, ...] = (1, 2, 3) l: List[int] = [1, 2, 3, 4]
函數(shù)注解
當(dāng)使用Python編寫復(fù)雜的函數(shù)時(shí),我們常常為沒有合適的提示而苦惱。函數(shù)注解可以幫助我們解決這個(gè)問題。
def add(a: int, b: int) -> int: return a + b
為函數(shù)添加注解之后,當(dāng)我們調(diào)用這個(gè)函數(shù)的時(shí)候,編輯器就會(huì)給予對應(yīng)的提示。當(dāng)處理大型項(xiàng)目的時(shí)候,這個(gè)特性會(huì)很有用。
函數(shù)注解保存在函數(shù)的__annotations__屬性中,如果你準(zhǔn)備編寫程序讀取它,可以使用這個(gè)屬性。
print(add.__annotations__)
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“如何使Python代碼實(shí)現(xiàn)類型提示功能”這篇文章對大家有幫助,同時(shí)也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。