python中的Annotated类型
时间: 2024-09-30 07:02:00 浏览: 50
python3.9安装包
5星 · 资源好评率100%
在Python 3.7及以上版本中,引入了一个新的数据类型`Annotated`(标记注解),这是PEP 526的一部分,用于添加额外类型信息到已有类型的声明,但这些注解不会影响代码的行为,只是提供给工具如类型检查器、IDE等使用,增强代码的可读性和文档化。
`Annotated`的基本语法是这样的:
```python
from typing import Annotated
# 定义一个带有注解的整数类型,表示这是一个非负整数
Age = Annotated[int, "年龄必须是非负的"]
```
在这个例子中,`int`是基本的类型,`"年龄必须是非负的"`是对这个类型的描述或限制,比如可以用在Type Checking工具中进行类型验证。
你可以使用`typing.get_type_hints()`获取类型注解:
```python
def check_age(age: Age) -> None:
if not isinstance(age, int) or age < 0:
raise ValueError("年龄不能为负")
check_age(20) # 正确
check_age(-5) # 抛出ValueError
```
阅读全文