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

使用mypy對(duì)python程序進(jìn)行靜態(tài)檢查

 更新時(shí)間:2021年11月29日 14:21:22   作者:wx60cb0021898b2  
大家好,本篇文章主要講的是使用mypy對(duì)python程序進(jìn)行靜態(tài)檢查,感興趣的同學(xué)快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下哦

前言

在此之前,我認(rèn)為 Python 的類型提示就是一個(gè)花瓶,看起來(lái)好看,但并沒(méi)有實(shí)質(zhì)的作用,因?yàn)榧词诡愋蛯戝e(cuò)了,或者傳錯(cuò)了,程序仍然可以運(yùn)行,直到我發(fā)現(xiàn)了 mypy 這個(gè)工具。今天就來(lái)聊一聊 mypy。

mypy 是 Python 中的靜態(tài)類型檢查器。寫完帶有類型提示的代碼之后,先別運(yùn)行行,用 mypy 命令來(lái)檢查下你的代碼,如果有錯(cuò)誤,會(huì)提示你,這讓 Python 的類型提示有了真正的作用。后續(xù)開(kāi)發(fā)的過(guò)程中可以強(qiáng)制 mypy 檢查無(wú)誤后才能上線,借此提高代碼的可讀性和可維護(hù)性。

嗯,很實(shí)用,不是嗎?下面分享一下如何使用 mypy。

1、安裝

這個(gè)很簡(jiǎn)單了,pip install mypy 就搞定了。

2、執(zhí)行

假如有這樣一個(gè) Python 程序,名稱叫 demo1.py,內(nèi)容如下:

def greeting(name: str) -> str: #這里提示有問(wèn)題
print (f'Hello { name }')

x: str = 'xxx'
y: int = "yyy" #這里應(yīng)該提示有問(wèn)題
greeting(x)
greeting(y) #這里應(yīng)該提示有問(wèn)題

代碼我已經(jīng)指出了兩處錯(cuò)誤,現(xiàn)在讓 mypy 檢查一下:

mypy 這個(gè)工具,讓Python的類型提示變得非常實(shí)用_mysql

果然,mypy 發(fā)現(xiàn)了三處錯(cuò)誤,并一一提示,非常好用啊。

如果不希望檢查某一行,可以在注釋上加上"# type: ignore":

y: int = "yyy" # type: ignore

mypy 具有強(qiáng)大且易于使用的類型系統(tǒng),具有很多優(yōu)秀的特性,例如類型推斷、泛型、可調(diào)用類型、元組類型、聯(lián)合類型和結(jié)構(gòu)子類型。

3、常用的內(nèi)置類型

mypy 這個(gè)工具,讓Python的類型提示變得非常實(shí)用_linux_02

4、配置文件

mypy 將依次查找當(dāng)前目錄下配置文件

mypy.ini

.mypy.ini

pyproject.toml

setup.cfg

如果還找不到,則依次尋找下面的配置文件:

$XDG_CONFIG_HOME/mypy/config

~/.config/mypy/config

~/.mypy.ini

此外,你也可以使用??--config-file?? 指定配置文件。

一個(gè)典型的 mypy.ini 配置文件如下:

# Global options:

[mypy]
python_version = 3.7
warn_return_any = True
warn_unused_configs = True

# Per-module options:

[mypy-mycode.foo.*]
disallow_untyped_defs = True

[mypy-mycode.bar]
warn_return_any = False

[mypy-somelibrary]
ignore_missing_imports = True

配置文件的詳細(xì)說(shuō)明,見(jiàn)官方文檔:https://mypy.readthedocs.io/en/stable/

常見(jiàn)配置項(xiàng):

files 逗號(hào)分隔的路徑列表,如果命令行上沒(méi)有給出,則應(yīng)由 mypy 檢查,支持遞歸。

exclude 應(yīng)忽略檢查的文件名、目錄名和路徑

ignore_missing_imports 禁止有關(guān)無(wú)法解析的導(dǎo)入的錯(cuò)誤消息。

disallow_untyped_defs 不允許定義沒(méi)有類型注釋或類型注釋不完整的函數(shù)。

plugins 逗號(hào)分隔的 mypy 插件列表

最后的話

mypy 是自動(dòng)化測(cè)試中很重要的一部分,可以幫助我們檢查 Python 語(yǔ)言的類型提示是否正確,減少代碼的 bug,Python 開(kāi)發(fā)的朋友們一定要用一用。

到此這篇關(guān)于使用mypy對(duì)python程序進(jìn)行靜態(tài)檢查的文章就介紹到這了,更多相關(guān)mypy靜態(tài)檢查內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • SpringBoot首頁(yè)設(shè)置解析(推薦)

    SpringBoot首頁(yè)設(shè)置解析(推薦)

    這篇文章主要介紹了SpringBoot首頁(yè)設(shè)置解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • python 標(biāo)準(zhǔn)差計(jì)算的實(shí)現(xiàn)(std)

    python 標(biāo)準(zhǔn)差計(jì)算的實(shí)現(xiàn)(std)

    這篇文章主要介紹了python 標(biāo)準(zhǔn)差計(jì)算的實(shí)現(xiàn)(std),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python實(shí)戰(zhàn)之實(shí)現(xiàn)百度智能圖片識(shí)別

    Python實(shí)戰(zhàn)之實(shí)現(xiàn)百度智能圖片識(shí)別

    這篇文章主要介紹了如何利用Python編寫一個(gè)百度智能圖片識(shí)別項(xiàng)目,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)Python有一定幫助,需要的可以參考一下
    2022-01-01
  • 詳解python網(wǎng)絡(luò)進(jìn)程

    詳解python網(wǎng)絡(luò)進(jìn)程

    進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng)。它是操作系統(tǒng)動(dòng)態(tài)執(zhí)行的基本單元,在傳統(tǒng)的操作系統(tǒng)中,進(jìn)程既是基本的分配單元,也是基本的執(zhí)行單元。本文將介紹python實(shí)現(xiàn)網(wǎng)絡(luò)進(jìn)程
    2021-06-06
  • python字典排序的方法

    python字典排序的方法

    在本篇文章里小編給大家整理的是關(guān)于python字典怎么排序的相關(guān)知識(shí)點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。
    2019-10-10
  • 詳解opencv中畫(huà)圓circle函數(shù)和橢圓ellipse函數(shù)

    詳解opencv中畫(huà)圓circle函數(shù)和橢圓ellipse函數(shù)

    這篇文章主要介紹了opencv中畫(huà)圓circle函數(shù)和橢圓ellipse函數(shù),本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • 基于python log取對(duì)數(shù)詳解

    基于python log取對(duì)數(shù)詳解

    今天小編就為大家分享一篇基于python log取對(duì)數(shù)詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • python讀取和保存mat文件的方法

    python讀取和保存mat文件的方法

    本文主要介紹了python讀取和保存mat文件的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • OpenCV半小時(shí)掌握基本操作之邊緣檢測(cè)

    OpenCV半小時(shí)掌握基本操作之邊緣檢測(cè)

    這篇文章主要介紹了OpenCV基本操作之邊緣檢測(cè),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-09-09
  • Numpy一維線性插值函數(shù)的用法

    Numpy一維線性插值函數(shù)的用法

    這篇文章主要介紹了Numpy一維線性插值函數(shù)的用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04

最新評(píng)論