目录
-
- 为什么要进行类型提示
- 变量添加静态类型注释
- 函数参数的类型注释
-
- **基本类型注释**
- **基于`typing`库**
- 其他高级用法
- 注意事项
- 特殊情况
-
- 类引用自身实例作为形参时的类型注释
- 参数要求为一个函数
为什么要进行类型提示
从 Python 3.5 开始引入,类型提示允许程序员为变量、函数参数和返回值指定预期的类型。这些提示不会改变 Python 的动态类型本质,但可以帮助 IDE 和类型检查器理解代码。
在脚本中进行类型提示,会使得代码比较规范,整体上说,会有以下几点好处:
- 提高代码可读性:类型注释使得变量的预期类型变得明确,可以快速了解每个变量应该存储何种类型的数据,而不需要深入阅读代码或执行它来推断类型。
- 促进代码的自我文档化:类型注释充当了代码的一部分文档,因为类型注释本身就提供了有关函数如何使用的关键信息。
- 静态类型检查:虽然Python是动态类型语言,类型注释本身不会影响代码的运行时行为,但它们允许使用静态类型检查工具(如
mypy
)来识别代码中的类型错误。这种静态类型检查可以在代码运行之前发现潜在的错误和不一致,从而提前防止一些运行时错误。 - 提高开发效率:许多现代的开发环境(IDEs)和编辑器支持类型提示,比如pycharm,可以利用这些信息提供更智能的代码补全、类型检查和重构工具。这可以显著提高开发效率,减少因类型错误造成的调试时间。
- 便于重构:尤其是过了一段时间再去看代码的时候,有完整的类型提示,类型注释可以帮助确保改动不会意外地改变变量的预期类型,或者不会破坏其他代码部分的类型约定。这使得重构过程更加安全和可靠。
变量添加静态类型注释
在Python中,给变量添加静态类型注释的方式很直接。这里有一些示例来展示不同情况下的类型注释使用:
-
基本类型(比如
int
,float
,str
):age: int = 30 name: str = "Alice" price: float = 19.99
-
列表、元组和其他容器(指定容器中元素的类型):
from typing import List, Tuple numbers: List[int] = [1, 2, 3, 4, 5] coordinates: Tuple[float, float] = (10.5, -20.3)
-
字典(指定键和值的类型):