Python 3.9 中引入了 typing.Annotated,它是一个类型提示工具,用于为类型添加元数据信息。Annotated 可以用于标注类型,以提供更多的信息,例如类型的来源、使用场景、约束条件等。
Annotated 的基本语法是 Annotated[类型, 元数据],其中 类型 是要标注的类型,元数据 是要添加的元数据信息。
示例:
from typing import Annotated
# 标注一个字符串类型,添加元数据 "hello"
hello_string: Annotated[str, "hello"] = "hello world"
# 标注一个整数类型,添加元数据 {"min": 0, "max": 100}
percentage: Annotated[int, {"min": 0, "max": 100}] = 50
在上面的示例中,我们使用 Annotated 标注了两个类型:hello_string 是一个字符串类型,添加了元数据 "hello";percentage 是一个整数类型,添加了元数据 {"min": 0, "max": 100}。
Annotated 的优点:
- 提供更多的类型信息:
Annotated 可以为类型添加元数据信息,使得类型更加明确和详细。 - 帮助静态类型检查工具:
Annotated 可以帮助静态类型检查工具(如 mypy)更好地理解代码的意图和约束条件。 - 提高代码可读性:
Annotated 可以使代码更加易读,减少歧义。
使用 Annotated 的场景:
- 标注类型的来源:例如,标注一个类型来自于某个特定的模块或库。
- 标注类型的使用场景:例如,标注一个类型只能用于某个特定的场景或环境。
- 标注类型的约束条件:例如,标注一个整数类型只能在某个特定的范围内。
注意:Annotated 只是一个类型提示工具,不会影响代码的执行结果。它主要用于帮助静态类型检查工具和其他开发者理解代码的意图和约束条件。