首页 > 编程语言 >Python使用Mypy进行静态变量审查

Python使用Mypy进行静态变量审查

时间:2024-05-22 16:51:20浏览次数:21  
标签:None Mypy Python List Union 静态 int str 类型

  python作为一个动态语言,可以对变量不进行类型定义就使用,这就导致随着项目的增大,我们很难回顾以前某些模块中每一个变量是什么类型(特别是在函数定义里,如果不进行类型检查,很可能对一个str类型进行了()调用等等),为了在编码时能够让编译器提醒我们,也防止在运行时出现问题,采用静态变量审查工具在我们编码时就可以更好地提醒我们(注意仅仅只是提醒,并非强制错误不让运行)。

  我们这里基于Vscode的Mypy插件,进行静态代码检查(从Vscode的插件库中直接下载即可)。Mypy是基于typing这个模块进行的,从typing模块中有非常多的静态类型可以使用,比如以下例子:

from typing import List, Literal, Union, Dict, Optional

# Literal类型用于限制变量的取值范围
game: Literal["checkers", "chess"]
game = "checkers"   # 如果为其他值将会报错
# 指定List元素中的类型等价于List[Union[int, float]]
var1: List[int | float | None] = [5, 2.4]
# 可选参数int或者为 None, 一切的Union都可以改为 int | None
var2: Union[int, None] = None
# 指定Dict的key和value类型
var3: Dict[str, int] = dict()
# Optional 是指这个参数可以为空或是已经声明的类型,即 Optional[int] 等价于 Union[int, None]。
var4: Optional[int] = None


# 传参参数类型指定, 返回参数指定
def func(string: str, a: int = 20) -> List[int | str]:
    """
    :param a: 整数类型的参数
    :param string: 字符串类型的参数
    :return: 返回列表类型的数据,列表中的数据应该是int类型或者str类型
    """
    list1: List[int | str] = []
    list1.append(string)
    list1.append(a)
    return list1

func("1", 2)

  

标签:None,Mypy,Python,List,Union,静态,int,str,类型
From: https://www.cnblogs.com/CircleWang/p/18206614

相关文章

  • python 自然语言处理模块
    Python中有几个流行的自然语言处理(NLP)模块,这些模块提供了广泛的工具和库,用于文本分析、处理和理解。以下是一些广泛使用的NLP模块:NLTK(NaturalLanguageToolkit)NLTK是Python中最著名的NLP库之一,它提供了文本处理的丰富工具,包括分词、词性标注、句法分析、语义推理等。网......
  • 如何快速理清复杂Python代码? 转发
    复杂Python代码看不懂,分享两个工具,事半功倍!RyvenRyven是一个Python代码可视化工具!学习地址:https://github.com/leon-thomm/Ryven一些案例,Ryven可视化操作矩阵Ryven可视化冒泡排序算法Ryven可视化OpenCV图像处理Python导师Python导师,即PythonTutor,是一个代码......
  • Python读取YAML配置数据
    python编写的一些脚本需要一些简单配置时可以使用yaml文件进行设置。本文将介绍如何使用pyyaml进行读取配置数据。首先安装pyyamlpipinstallpyyaml简单使用下pyyaml,比较新的python版本记得要指定Loaderimportyamlcontent_='''typecho:  url:https://www.xtiger......
  • python获取华为云CDN日志
    1.安装模块pipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplehuaweicloudsdkcdnpipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simpledatetime2.获取前一天日志文件importosimportrequestsimportshutilimportgzipimportglobimportjs......
  • Python基础篇(函数)
    函数是实现某种特定的功能而组织的带名字的代码块,可以重复使用的,用来实现单一,或相关联功能的代码段,所以说函数是程序员规模化使用的基础。函数能提高应用的模块性,和代码的重复利用率。在程序设计中,常将一些常用的功能模块编写成函数,放在函数库中供公共选用。善于利用函数,可以减少......
  • python环境安装
    python环境安装分三步,下载、安装、验证。一、python包下载python包下载地址python.org。本例程下载3.8.10版本,据说3.8版本较为稳定。最新版本点击黄色按钮可直接下载,如果想要下载历史版本则找到所想要选择的历史版本点击进入,在所进入页面的最下方存放有下载资源。位置如下图所......
  • 写给-Python-开发者的-JavaScript-实用指南-全-
    写给Python开发者的JavaScript实用指南(全)原文:zh.annas-archive.org/md5/3cb5d18379244d57e9ec1c0b43934446译者:飞龙协议:CCBY-NC-SA4.0前言在学习Python时,您通过学习Python的基础知识、其优雅和编程原则,迈出了软件工程职业生涯的第一步。在您职业生涯的下一个阶段......
  • Python:自定义类或模块时的注意事项
     Python进阶版:定义类时应用的9种最佳做法1.好的命名2.显式实例属性3.使用属性——但要精简4.定义有意义的字符串表示法5.实例方法,类方法和静态方法6.使用私有属性进行封装7.分离关注点和解耦8.考虑使用__slots__进行优化9.文件 1.好的命名定义自己的类,就......
  • 「Python实用秘技17」快速获取国内节假日安排
    本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills这是我的系列文章「Python实用秘技」的第17期,本系列立足于笔者日常工作中使用Python积累的心得体会,每一期为大家带来一个几分钟内就可学会的简单小技巧。作为系列第1......
  • python开发一个起名字小软件
    01首先我们需要爬虫获取数据,收集名字数据库和相关数据,包括性别、出生年月等信息,以及名字的解释和流行趋势数据。收集名字数据库和相关数据可以通过多种途径进行,包括从公开的数据源获取、爬取网站数据、购买商业数据等。第一个步骤就是下载就是需要request插件。1)到git下载源码zi......