《電子技術(shù)應用》
您所在的位置:首頁 > 可編程邏輯 > 業(yè)界動態(tài) > 微軟發(fā)布的 pyright 有哪些功能

微軟發(fā)布的 pyright 有哪些功能

2019-04-02
關(guān)鍵詞: 微軟 pyright 檢查器 github

微軟本周發(fā)布一個小工具:pyright,它是一個靜態(tài)類型檢查器,微軟聲稱 pyright 各方面性能優(yōu)于同行。

Python 是一個動態(tài)語言,代碼加載到內(nèi)存并運行至某行時,變量類型才真正得以確定,如下,在運行至第2行前,編譯器不知道 name 的類型為 str.

before()name = 'robot'after()

毋庸置疑,python 這種語法,書寫起來相當簡潔,不用像 c++,java 等語言那樣,必須聲明類型。

看待任何事情都要用辯證思維,此處也不例外。簡潔的語法,帶來了一些副作用,下面用一個最簡單的例子說明副作用。

python 的可迭代對象一般都有一個 len 函數(shù),計算里面元素的個數(shù),如果入?yún)?list, tuple, dict, set 等,它是不會報錯的。但是,如果傳入10,因為對象10是 int, 顯然int 類型沒有 len 方法,所以報錯!

len(iterable_object)

軟件產(chǎn)品要健壯,就必須要適應各種輸入實例。像上面說到的,類型不符合預期,調(diào)用方法導致系統(tǒng)崩潰,這在實際項目中是不允許的。

為了避免這種類型沒有此方法的出錯,實際上我們自己可以手寫一些代碼來避免,比如上面這種情況,可以這么改,判斷輸入?yún)?shù)obj取值類型是否為可迭代的對象,不是則提示并返回,這種提示方法更加友好。

from collections import abcif isinstance(obj, abc.Iterable) is False:  print('%s 不是可迭代的'%str(obj))  return

這種寫法無形中會增加很多代碼,能用一個框架統(tǒng)一解決這個問題嗎?微軟的pyright做的就是這個事情。

使用pyright, 代碼會簡化成這樣:

len(iterable_object: abc.Iterable)

以上介紹了 pyright 做什么的,解決了什么問題,如何使用。點擊閱讀原文了解github開源的這個框架。


本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 成年美女黄网站色| 波多野结衣教室| 国产激情一区二区三区四区| 一区二区日韩精品中文字幕| 最近中文字幕2018中文字幕6| 免费看黄色一级| 青青青青久在线观看视频| 国产精品秦先生手机在线| 一区二区三区国产最好的精华液| 日韩免费视频网站| 亚洲图片欧美小说| 男人的天堂av社区在线| 国产一区二区三区日韩欧美| 久久精品国产一区二区三区肥胖| 男人和男人一起差差| 国产中文字幕第一页| 第一福利在线观看| 太粗太深了用力点视频| 久久久久久久波多野结衣高潮| 欧美日韩欧美日韩| 免费a级毛片高清在钱| 色噜噜狠狠一区二区三区| 国产无套乱子伦精彩是白视频| 中文字幕1区2区| 日韩精品无码一本二本三本| 亚洲熟妇无码乱子av电影| 精品国产v无码大片在线观看| 国产美女做a免费视频软件| 一级一级一级一级毛片| 欧美在线一卡二卡一卡3卡4卡5| 免费的看黄网站| 色综合久久综合网观看| 国产欧美va欧美va香蕉在线观看| 91福利精品老师国产自产在线| 好男人社区www在线观看高清| 中文字幕第9页萱萱影音先锋| 日韩高清在线播放| 亚洲午夜精品在线| 欧美黑人激情性久久| 伊人久久波多野结衣中文字幕| 美国十次精彩在线视频|