类型注解(type hints)是一种明确指示变量、函数参数和返回值预期类型的方式。该语法在Python 3.5中出现(PEP 484)。注解是静态的——解释器在执行时会忽略它们,它们旨在用于代码分析工具(mypy、Pyright、IDE)。
注解有助于:
示例:
def add(x: int, y: int) -> int: return x + y def show(items: list[str]) -> None: print(', '.join(items))
常见问题:
类型注解是否会以某种方式影响代码的性能或正确性?
回答: 不,类型注解不影响代码的性能或在运行时的功能。这只是元数据。但它们可以被第三方工具或框架用于类型检查和验证(例如,在FastAPI中)。
故事
在项目中,大型动态结构通过 list、dict 标注类型,但没有明确元素(例如:def f(x: list): ...)。结果,静态分析器无法识别类型错误,因为注解中不清楚内部内容。
故事
在Python 3.7中使用 from __future__ import annotations 来支持推迟评估,但在项目的某个部分忘记了这点。这导致前向引用在静态分析时和使用某些框架时在运行时出错。
故事
在大型项目中,错误地设置返回值的类型:忘记导入 Optional,导致mypy报错,以及在IDE中一系列未记录的问题,妨碍了自动补全和错误高亮。