讓你的Python代碼擁有類型提示

Python是一種動態(tài)類型語言会宪,這意味著我們在編寫代碼的時候更為自由,但是與此同時IDE無法向靜態(tài)類型語言那樣分析代碼蚯窥,及時給我們相應(yīng)的提示掸鹅。為了解決這個問題塞帐,Python 3.6 新增了幾個特性PEP 484PEP 526,幫助編輯器為我們提供更智能的提示巍沙。這些新特性不會影響語言本身葵姥,只是增加一點提示。當(dāng)你使用比較智能的開發(fā)工具比如PyCHarm時句携,就會感覺到類型提示的方便之處榔幸。

變量注解

首先先看看變量注解。它的語法和某些類型后置的語言類似矮嫉。

# 變量注解
a: int = 5
b: bool = True
f: float = 5.0
s: str = "abc"

聲明類型之后削咆,編輯器和IDE就會讀取到這個類型注解,然后給予我們相應(yīng)的提示蠢笋。程序在運行的時候行為完全不變拨齐。

如果是自己編寫的類,也可以用作變量注解挺尿。

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ù)注解可以幫助我們解決這個問題。

def add(a: int, b: int) -> int:
    return a + b

為函數(shù)添加注解之后忍啸,當(dāng)我們調(diào)用這個函數(shù)的時候仰坦,編輯器就會給予對應(yīng)的提示。當(dāng)處理大型項目的時候计雌,這個特性會很有用悄晃。

函數(shù)注解保存在函數(shù)的__annotations__屬性中,如果你準(zhǔn)備編寫程序讀取它凿滤,可以使用這個屬性妈橄。

print(add.__annotations__)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市翁脆,隨后出現(xiàn)的幾起案子眷蚓,更是在濱河造成了極大的恐慌,老刑警劉巖反番,帶你破解...
    沈念sama閱讀 218,525評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件沙热,死亡現(xiàn)場離奇詭異叉钥,居然都是意外死亡,警方通過查閱死者的電腦和手機篙贸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,203評論 3 395
  • 文/潘曉璐 我一進店門投队,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人歉秫,你說我怎么就攤上這事蛾洛。” “怎么了雁芙?”我有些...
    開封第一講書人閱讀 164,862評論 0 354
  • 文/不壞的土叔 我叫張陵轧膘,是天一觀的道長。 經(jīng)常有香客問我兔甘,道長谎碍,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,728評論 1 294
  • 正文 為了忘掉前任洞焙,我火速辦了婚禮蟆淀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘澡匪。我一直安慰自己熔任,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,743評論 6 392
  • 文/花漫 我一把揭開白布唁情。 她就那樣靜靜地躺著疑苔,像睡著了一般。 火紅的嫁衣襯著肌膚如雪甸鸟。 梳的紋絲不亂的頭發(fā)上惦费,一...
    開封第一講書人閱讀 51,590評論 1 305
  • 那天,我揣著相機與錄音抢韭,去河邊找鬼薪贫。 笑死,一個胖子當(dāng)著我的面吹牛刻恭,可吹牛的內(nèi)容都是我干的瞧省。 我是一名探鬼主播,決...
    沈念sama閱讀 40,330評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼吠各,長吁一口氣:“原來是場噩夢啊……” “哼臀突!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起贾漏,我...
    開封第一講書人閱讀 39,244評論 0 276
  • 序言:老撾萬榮一對情侶失蹤候学,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后纵散,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體梳码,經(jīng)...
    沈念sama閱讀 45,693評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡隐圾,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,885評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了掰茶。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片暇藏。...
    茶點故事閱讀 40,001評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖濒蒋,靈堂內(nèi)的尸體忽然破棺而出盐碱,到底是詐尸還是另有隱情,我是刑警寧澤沪伙,帶...
    沈念sama閱讀 35,723評論 5 346
  • 正文 年R本政府宣布瓮顽,位于F島的核電站,受9級特大地震影響围橡,放射性物質(zhì)發(fā)生泄漏暖混。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,343評論 3 330
  • 文/蒙蒙 一翁授、第九天 我趴在偏房一處隱蔽的房頂上張望拣播。 院中可真熱鬧,春花似錦收擦、人聲如沸贮配。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,919評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牧嫉。三九已至,卻和暖如春减途,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背曹洽。 一陣腳步聲響...
    開封第一講書人閱讀 33,042評論 1 270
  • 我被黑心中介騙來泰國打工鳍置, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人送淆。 一個月前我還...
    沈念sama閱讀 48,191評論 3 370
  • 正文 我出身青樓税产,卻偏偏與公主長得像,于是被迫代替她去往敵國和親偷崩。 傳聞我的和親對象是個殘疾皇子辟拷,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,955評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 更新時間:2016/5/13 介紹 本文檔所提供的編碼規(guī)范,適用于主要的Python發(fā)行版中組成標(biāo)準(zhǔn)庫的Pytho...
    超net閱讀 5,862評論 0 15
  • 前言 Python的創(chuàng)始人為Guido van Rossum阐斜。1989年圣誕節(jié)期間衫冻,在阿姆斯特丹,Guido為了打...
    依依玖玥閱讀 3,569評論 6 37
  • 本節(jié)內(nèi)容 Python介紹 發(fā)展史 Python 2 or 3? 安裝 Hello World程序 變量 用戶輸入...
    小小不懂11閱讀 3,421評論 2 30
  • 文/Bruce.Liu1 1.Python前世今生 1.1.Python歷史 Python的創(chuàng)始人: Guido ...
    BruceLiu1閱讀 11,810評論 3 120
  • 其實她是喜歡他的邻奠,但是沒有勇氣去撩他,因為太害怕为居,害怕失去碌宴,害怕連細微的聯(lián)系也斷了。這樣的關(guān)系挺好的蒙畴,只要不表...
    聊一聊閱讀 275評論 0 1