《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 業界動態 > 微軟發布的 pyright 有哪些功能

微軟發布的 pyright 有哪些功能

2019-04-02

微軟本周發布一個小工具:pyright,它是一個靜態類型檢查器,微軟聲稱 pyright 各方面性能優于同行。

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

before()name = 'robot'after()

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

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

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

len(iterable_object)

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

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

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

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

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

len(iterable_object: abc.Iterable)

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


本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 黄网站欧美内射| www国产无套内射com| 没带罩子让老师捏了一节课| 国产亚洲精品成人久久网站| 97亚洲熟妇自偷自拍另类图片| 日本一道综合久久aⅴ免费| 亚洲欧美一区二区三区日产| 美女被免费网站视频九色| 国产特级毛片aaaaaaa高清| jlzz奶水太多奶水太多| 日本一道dvd在线播放| 亚洲人成网站在线观看播放动漫| 秋霞理论最新三级理论最| 国产偷久久久精品专区| 香蕉视频网站在线| 奇米777在线视频| 久久中文字幕一区二区| 欧美一区二区三区在观看| 人妻丰满熟妇av无码区| 老师你好电影高清完整版在线观看| 国产特级毛片aaaaaa高潮流水| aaaaaa级特色特黄的毛片| 手机在线看片国产日韩生活片| 亚洲av永久无码精品三区在线4 | 小小的日本电影完整版在线观看| 久久精品国产亚洲AV麻豆王友容| 欧美老熟妇乱子伦视频| 免费观看的毛片| 草莓视频网站下载| 国产熟女一区二区三区五月婷| 99久久精品国产免费| 幸福宝隐藏入口最新章节免费阅读小说 | 麻豆麻豆必出精品入口| 国产视频一二区| yellow字幕网在线zmzz91| 日本三级中文字幕| 亚洲av本道一区二区三区四区| 毛片大全免费观看| 免费无码又爽又黄又刺激网站| 色偷偷成人网免费视频男人的天堂| 国产成人无码网站|