91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python靜態類型檢查新工具之pyright怎么用

發布時間:2021-07-22 14:27:57 來源:億速云 閱讀:199 作者:小新 欄目:開發技術

這篇文章將為大家詳細講解有關Python靜態類型檢查新工具之pyright怎么用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

Python是一門動態類型的語言,民間流傳一種說法叫”動態一時爽,重構火葬場”,聽起來夠嚇人的,好在這門語言在不斷地改進,包括對 PEP484 引入的類型提示(Type Hint),就是在某種程度上,讓Python能夠像靜態語言一樣支持類型聲明,例如:

def greeting(name: str) -> str:
 return 'Hello ' + name

這就意味著,如果有人調用 greeting函數的時候,傳入的參數不是字符串,你用靜態類型檢查工具一下就能查出來哪些地方沒有傳入正確類型的值。而 pyright 就是為此而生。

pyright 核心特性:

  • TypeScript 編寫,速度快

  • 不依賴Python環境

  • 可配置性強

我們可以直接在 vscode 搜索安裝插件 pyright

Python靜態類型檢查新工具之pyright怎么用

命令行工具可以使用 npm 安裝

sudo npm i -g pyright

如何使用pyright

假設有個python文件 hello.py,里面代碼是:

def greeting2(age:int) -> str:
 print("hello")
greeting2("nihao")
greeting2(1)

注意我給greeting2中的參數類型聲明是int,返回的返回值是字符串類型,但是在函數中并沒有看到return 返回值。直接運行該文件不會有任何錯誤

python hello.py
hello
hello

在VSCode中會直接有錯誤提示信息:

Python靜態類型檢查新工具之pyright怎么用

如果我們用 pyright 檢查代碼,輸出信息:

pyright hello.py
Finding source files
Found 1 source files
Analyzed 1 file in 1.546sec
/Users/xxxx/Workspace/My/draft/hello.py
  Function with declared type of str must return value (1, 28)
  Argument of type 'str' cannot be assigned to parameter of type 'int' (4, 11)
2 errors, 0 warnings
Find Source Files:    0.001sec
Read Source Files:    0.012sec
Tokenize:             0.085sec
Parse:                0.17sec
Post-parse Walker:    0.147sec
Semantic Analyzer:    0.293sec
Type Analyzer:        0.766sec

提示有兩處問題:

  1. Function with declared type of str must return value (1, 28),函數聲明返回str類型的值,但是卻沒有返回

  2. Argument of type 'str' cannot be assigned to parameter of type 'int' (4, 11), 字符串值不能復制給int類型參數

剩下的事情就是按照錯誤提示修正, 正如 PEP484 所說的那樣,Type Hint is not role , is tool。 它并不是規則,只是一個工具,幫助我們規避某些錯誤。即使你傳錯了參數,程序編譯時并不會報錯,只有執行到具體的業務代碼的時候才會出錯。

關于“Python靜態類型檢查新工具之pyright怎么用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

扶风县| 沧州市| 东乌| 太谷县| 建德市| 张家港市| 东丰县| 阳新县| 旌德县| 当阳市| 临江市| 弥渡县| 遂宁市| 新民市| 湾仔区| 邹平县| 碌曲县| 垦利县| 商洛市| 吴江市| 乐至县| 衡水市| 太和县| 荥经县| 彩票| 高要市| 平利县| 广宗县| 锦州市| 乌拉特中旗| 黄陵县| 江达县| 巴南区| 陆丰市| 丰县| 长丰县| 阿拉善盟| 油尖旺区| 永顺县| 衡阳县| 四平市|