十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊
量身定制 + 運營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
近日,微軟在 Github 上開源了一個 Python 靜態(tài)類型檢查工具:pyright ,引起了社區(qū)內(nèi)的多方關(guān)注。
微軟在開源項目上的參與力度是越來越大了,不說收購 Github 這種大的戰(zhàn)略野心,只說它家開源的 VS Code 編輯器,在猿界已割粉無數(shù),連我 Python 圈的紅人 Kenneth Reitz(多個開源項目的作者,包括 requests、requests-html、responder等)都對它贊不絕口。
如今開源的 Pyright ,口碑還不錯,那我們就來看看它有啥本事,順便再介紹其它幾款類型檢查工具。
眾所周知,Python 是一門動態(tài)類型語言,在運行期才知道變量的實際類型。這本就是動態(tài)語言的特色,然而在團(tuán)隊合作或大型項目上,維護(hù)的代價也不可避免,俗話說的是:“動態(tài)一時爽,重構(gòu)火葬場 ”。
早在 2006 年的 PEP-3107,Python 就推出了函數(shù)注解的功能,最終落在 3.0 版本實現(xiàn)。而到了 3.5 版本,Python 繼續(xù)引入了靜態(tài)類型檢查的語法(即 PEP-484,type hints)。2014 年的 PEP-483 更是以《The Theory of Type Hints》為題,做出了理論上的歸納。后來,又陸續(xù)提出了 PEP-526、PEP-544,類型檢查的規(guī)范逐漸豐富。
類型檢查的好處是及早檢查,提前發(fā)現(xiàn)類型的錯誤,增強(qiáng)代碼的一致性與可維護(hù)性。(還有防止脫發(fā),喵)
# 不加檢查 def greeting(name): return 'Hello ' + name # 添加檢查 def greeting(name: str) -> str: return 'Hello ' + name