iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >使用mypy对python程序进行静态检查
  • 137
分享到

使用mypy对python程序进行静态检查

2024-04-02 19:04:59 137人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

目录前言1、安装2、执行3、常用的内置类型4、配置文件最后的话前言 在此之前,我认为 python 的类型提示就是一个花瓶,看起来好看,但并没有实质的作用,因为即使类型写错了,或者传

前言

在此之前,我认为 python 的类型提示就是一个花瓶,看起来好看,但并没有实质的作用,因为即使类型写错了,或者传错了,程序仍然可以运行,直到我发现了 mypy 这个工具。今天就来聊一聊 mypy。

mypy 是 Python 中的静态类型检查器。写完带有类型提示的代码之后,先别运行行,用 mypy 命令来检查下你的代码,如果有错误,会提示你,这让 Python 的类型提示有了真正的作用。后续开发的过程中可以强制 mypy 检查无误后才能上线,借此提高代码的可读性和可维护性。

嗯,很实用,不是吗?下面分享一下如何使用 mypy。

1、安装

这个很简单了,pip install mypy 就搞定了。

2、执行

假如有这样一个 Python 程序,名称叫 demo1.py,内容如下:


def greeting(name: str) -> str: #这里提示有问题
print (f'Hello { name }')

x: str = 'xxx'
y: int = "yyy" #这里应该提示有问题
greeting(x)
greeting(y) #这里应该提示有问题

代码我已经指出了两处错误,现在让 mypy 检查一下:

mypy 这个工具,让Python的类型提示变得非常实用_mysql

果然,mypy 发现了三处错误,并一一提示,非常好用啊。

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


y: int = "yyy" # type: ignore

mypy 具有强大且易于使用的类型系统,具有很多优秀的特性,例如类型推断、泛型、可调用类型、元组类型、联合类型和结构子类型。

3、常用的内置类型

mypy 这个工具,让Python的类型提示变得非常实用_linux_02

4、配置文件

mypy 将依次查找当前目录下配置文件

mypy.ini

.mypy.ini

pyproject.toml

setup.cfg

如果还找不到,则依次寻找下面的配置文件:

$XDG_CONFIG_HOME/mypy/config

~/.config/mypy/config

~/.mypy.ini

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

一个典型的 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

配置文件的详细说明,见官方文档:https://mypy.readthedocs.io/en/stable/

常见配置项:

files 逗号分隔的路径列表,如果命令行上没有给出,则应由 mypy 检查,支持递归

exclude 应忽略检查的文件名、目录名和路径

ignore_missing_imports 禁止有关无法解析的导入的错误消息。

disallow_untyped_defs 不允许定义没有类型注释或类型注释不完整的函数。

plugins 逗号分隔的 mypy 插件列表

最后的话

mypy 是自动化测试中很重要的一部分,可以帮助我们检查 Python 语言的类型提示是否正确,减少代码的 bug,Python 开发的朋友们一定要用一用。

到此这篇关于使用mypy对python程序进行静态检查的文章就介绍到这了,更多相关mypy静态检查内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 使用mypy对python程序进行静态检查

本文链接: https://www.lsjlt.com/news/158715.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 使用mypy对python程序进行静态检查
    目录前言1、安装2、执行3、常用的内置类型4、配置文件最后的话前言 在此之前,我认为 Python 的类型提示就是一个花瓶,看起来好看,但并没有实质的作用,因为即使类型写错了,或者传...
    99+
    2024-04-02
  • 使用struts2怎么对静态资源进行映射
    这篇文章给大家介绍使用struts2怎么对静态资源进行映射,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在struts2框架中有一些它所需要的公共的静态内容,比如说js文件和一些css文件。当框架需要这些静态内容的时候...
    99+
    2023-05-31
    struts2 st
  • 怎么对Python数据表进行检查
    这期内容当中小编将会给大家带来有关怎么对Python数据表进行检查,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问...
    99+
    2023-06-14
  • React Native工程中TSLint静态检查工具怎么用
    这期内容当中小编将会给大家带来有关React Native工程中TSLint静态检查工具怎么用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。TSLint为TypeScript提供了代码检查能力,对使用Ty...
    99+
    2023-06-04
  • ​Python使用Mediapipe对图像进行手部地标检测
    目录概述行业用例导入库使用 Mediapipe 初始化手的地标检测模型读取图像执行手部地标检测在图像上绘制地标结论尾注概述 在本文中,我们将以深度库即 Mediapipe为基础库,以...
    99+
    2024-04-02
  • 怎么禁用远程主机对SSH的公钥进行检查
    本篇内容主要讲解“怎么禁用远程主机对SSH的公钥进行检查”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么禁用远程主机对SSH的公钥进行检查”吧!SH 公钥检查是一个重要的安全机制,可以防范中间...
    99+
    2023-06-13
  • 使用python怎么检测静态图像中的人脸
    这篇文章给大家介绍使用python怎么检测静态图像中的人脸,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python是什么意思Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用...
    99+
    2023-06-14
  • Groovy 2.0静态类型检查及如何使用编译功能
    Groovy 2.0静态类型检查及如何使用编译功能,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Groovy开发团队近日发布了2.0的版本,Groovy是基于Java虚拟机(J...
    99+
    2023-06-17
  • python使用sorted函数对列表进行排序
    在python中使用sorted函数对列表进行排序的方法sorted:sorted()函数的作用是对所有可迭代的对象进行排序操作。sorted()函数语法:sorted(iterable, key=None, reverse=False) ...
    99+
    2024-04-02
  • 用Python对MySQL同步状态进行监
    用Python对MySQL同步状态进行监控 使用Python对MySQL数据库服务器是否可访问,及主从同步是否中断进行监控,是一件非常简单的事情。感谢Python给我们带来了如此简单,强大,快捷的开发环境。 本文使用到的Pytho...
    99+
    2023-01-31
    状态 Python MySQL
  • 使用pyinstaller怎么对exe程序进行封装
    使用pyinstaller怎么对exe程序进行封装?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。首先安装pyinstaller.命令:pip install&nb...
    99+
    2023-06-07
  • 怎么用Dreamweaver8对网站文件进行检查整理
    这篇文章主要讲解了“怎么用Dreamweaver8对网站文件进行检查整理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Dreamweaver8对网站文件进行检查整理”吧!  步骤如下:...
    99+
    2023-06-08
  • 使用python进行whois查询
    使用python进行whois查询 使用pip命令安装whois pip install python-whois Python 2.7.6 (default, Oct 26 2016, 20:30:19) [GCC 4....
    99+
    2023-01-31
    python whois
  • 使用Python的sorted()函数对列表进行排序
    使用Python的sorted()函数对列表进行排序Python是一种功能强大的编程语言,提供了许多内置的函数和方法来帮助开发人员处理不同的任务。其中一个非常有用的函数是sorted()函数,它可以用于对列表进行排序。sorted()函数接...
    99+
    2023-11-18
    Python sorted() 列表排序
  • 使用@Value为静态变量导入并使用导入的静态变量进行初始化方式
    目录1 问题描述2 问题结构2.1 服务方2.2 客户方3总结总结1 问题描述 在南京出差时,在开始开发,自己把一些相对紧密联系的不变得配置放进一个类中,这些字段为static的,待...
    99+
    2023-02-13
    @Value静态变量 静态变量导入 静态变量初始化
  • 如何进行小程序的代码审查与规范检测
    小程序的代码审查与规范检测可以通过以下几个步骤来进行: 代码审查:在团队合作开发小程序时,可以定期进行代码审查,查看代码质量、风...
    99+
    2024-04-17
    小程序
  • 使用python怎么对MongoDB进行增删改查操作
    这篇文章将为大家详细讲解有关使用python怎么对MongoDB进行增删改查操作,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、说明MongoDB使用查看数据的功能时非常方便。能立即看到增...
    99+
    2023-06-14
  • 详解使用Python+Pycaret进行异常检测
    目录概述介绍为什么是PyCaret学习目标PyCaret安装数据导入探索性异常检测分析Swarm图箱形图散点图异常检测模型创建隔离森林局部异常因子K最近邻比较模型中的异常解释和可视化...
    99+
    2024-04-02
  • 怎么对Python程序学习过程进行总结
    今天就跟大家聊聊有关怎么对Python程序学习过程进行总结,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。你需要注意一些问题,比如代码编程和调试过程中的问题,这些一定要仔细和认真,Py...
    99+
    2023-06-17
  • 使用python怎么对列表进行永久性排序
    这篇文章给大家介绍使用python怎么对列表进行永久性排序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python的五大特点是什么python的五大特点:1.简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本...
    99+
    2023-06-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作