文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2024-04-02 19:55

关注

前言

在此之前,我认为 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静态检查内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯