欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python靜態(tài)類型檢查新工具之pyright 使用指南

 更新時間:2019年04月26日 10:10:28   作者:劉志軍  
這篇文章主要介紹了Python靜態(tài)類型檢查新工具之pyright 使用指南,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下

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

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

這就意味著,如果有人調(diào)用 greeting函數(shù)的時候,傳入的參數(shù)不是字符串,你用靜態(tài)類型檢查工具一下就能查出來哪些地方?jīng)]有傳入正確類型的值。而 pyright 就是為此而生。

pyright 核心特性:

  • TypeScript 編寫,速度快
  • 不依賴Python環(huán)境
  • 可配置性強

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

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

sudo npm i -g pyright

如何使用pyright

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

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

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

python hello.py
hello
hello

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


如果我們用 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),函數(shù)聲明返回str類型的值,但是卻沒有返回
  2. Argument of type 'str' cannot be assigned to parameter of type 'int' (4, 11), 字符串值不能復制給int類型參數(shù)

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

GitHub地址:https://github.com/Microsoft/pyright

總結(jié)

以上所述是小編給大家介紹的Python靜態(tài)類型檢查新工具之pyright 使用指南,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Python深度學習之FastText實現(xiàn)文本分類詳解

    Python深度學習之FastText實現(xiàn)文本分類詳解

    FastText是一種典型的深度學習詞向量的表示方法,它非常簡單通過Embedding層將單詞映射到稠密空間,然后將句子中所有的單詞在Embedding空間中進行平均,進而完成分類操作
    2022-09-09
  • python 利用棧和隊列模擬遞歸的過程

    python 利用棧和隊列模擬遞歸的過程

    這篇文章主要介紹了python 利用棧和隊列模擬遞歸的過程,文中并通過兩段代碼給大家介紹了下遞歸和非遞歸的區(qū)別,需要的朋友可以參考下
    2018-05-05
  • python定時檢測無響應進程并重啟的實例代碼

    python定時檢測無響應進程并重啟的實例代碼

    這篇文章主要介紹了python定時檢測無響應進程并重啟的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-04-04
  • Python實現(xiàn)超快窗口截圖功能詳解

    Python實現(xiàn)超快窗口截圖功能詳解

    這篇文章主要為大家詳細介紹了如何利用Python語言實現(xiàn)超快窗口截圖功能,可以自動獲取當前活動窗口并展示截圖,感興趣的可以了解一下
    2022-05-05
  • Python實現(xiàn)七大查找算法的示例代碼

    Python實現(xiàn)七大查找算法的示例代碼

    這篇文章主要介紹了Python實現(xiàn)七大查找算法的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • python3編寫ThinkPHP命令執(zhí)行Getshell的方法

    python3編寫ThinkPHP命令執(zhí)行Getshell的方法

    這篇文章主要介紹了python3編寫ThinkPHP命令執(zhí)行Getshell的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-02-02
  • pandas 實現(xiàn)將NaN轉(zhuǎn)換為None

    pandas 實現(xiàn)將NaN轉(zhuǎn)換為None

    這篇文章主要介紹了pandas 實現(xiàn)將NaN轉(zhuǎn)換為None的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • 利用Tensorboard繪制網(wǎng)絡(luò)識別準確率和loss曲線實例

    利用Tensorboard繪制網(wǎng)絡(luò)識別準確率和loss曲線實例

    今天小編就為大家分享一篇利用Tensorboard繪制網(wǎng)絡(luò)識別準確率和loss曲線實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • python中requests庫+xpath+lxml簡單使用

    python中requests庫+xpath+lxml簡單使用

    這篇文章主要介紹了python中requests庫+xpath+lxml簡單使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • python操作xlsx格式文件并讀取

    python操作xlsx格式文件并讀取

    python操作xlsx格式文件是比較常見的一個問題,本文給大家介紹xlrd庫讀取,pandas庫讀取的實例代碼,給大家講解的很詳細,需要的朋友跟隨小編一起看看吧
    2021-06-06

最新評論