一、学前花絮
最近在看python代码的时候,特别是比较新版本的代码,都加了类型注解。以前说python语法简单,变量拿起来就用,根本不用关心这个变量是str还是int还是list,赋值什么就是什么。但当程序复杂之后会出现一个问题,比如你定义一个函数有几个变量,在使用这个函数的时候这个变量到底是什么类型呢?
其实python的容易与出错是一个需要平衡的事情,很多事情过于简单就容易出错。随着python版本的发展,类型注解逐渐成为主流,让程序看起来美观、易用,又能提升性能。
二、Python类型注解并示例
2.1 类型注解的历史演进
发展时间线:
Python 3.0 (2008年) - 无类型注解时代
Python 3.5 (2015年) - PEP 484革命性引入
Python 3.6 (2016年) - PEP 526变量注解标准化
Python 3.9 (2020年) - PEP 585泛型内置类型
Python 3.10 (2021年) - PEP 604联合类型简化
Python 3.11+ (2022年至今) - 持续优化
2.2 类型注解的核心优势
1. 代码可读性暴增
2. IDE智能支持
自动补全:知道变量类型后提供精准提示
错误检测:实时发现类型不匹配问题
重构辅助:重命名变量时准确识别所有引用
3. 静态类型检查
有了以上的类型注解,相当于进行了代码说明。
5. 性能优化潜力
PyPy等JIT编译器可利用类型信息进行优化
某些IDE能基于类型信息提供更好性能建议
2.3 实战对比:用与不用类型注解
Dict 类型注解对比
不用类型注解:
以上不用类型注解,在使用过程中容易出现错误。
使用类型注解:
List 类型注解对比
不用类型注解:
不用类型注解,在给参数赋值的时候发生int到str的错误,运行后会报错:
使用类型注解:
因为有了类型注解,在使用的时候知道参数怎么赋值,不会出现float赋值str的情况。
Tuple 类型注解对比
不用类型注解:
同样的,不使用类型注解,不知道参数的具体类型。
使用类型注解:
三、小结
今天学习了python的类型注解,应该说没有它程序也能跑通。但对于一个系统工程来说,要考虑程序的美观、易用以及可扩展性多方面。一个没有类型注解的程序别说让人接手会很麻烦,即便自己时间长了也不知道变量是什么类型了,会花费大量时间解读程序。所以说类型注解是python的一大进步。
让我们保持学习的热情,2026年一马当先、马到成功!