欢迎访问宙启技术站
智能推送

Python中的TypedDict():类型注解的利器

发布时间:2023-12-23 17:49:26

在Python中,我们经常需要对变量的类型进行注解,以便在编译时检测类型错误,提高代码的可维护性。Python 3.5版本引入了类型注解的功能,允许我们在变量、函数参数、函数返回值等上面进行类型注解。

在类型注解的基础上,Python 3.8版本引入了TypedDict(),它是一种用于注解字典类型的工具。TypedDict()可以帮助我们更好地约束字典的键和值的类型,从而减少类型错误的产生。

使用TypedDict()注解的字典具有如下特点:

1. 键的类型注解是必须的;

2. 值的类型注解是可选的,默认为Any类型;

3. 键的重复注解是不允许的;

4. 字典中的键可以缺省。

下面我们通过例子来说明TypedDict()的使用。

from typing import TypedDict

# 定义一个学生字典类型,键包含'name'、'age'和'score',值分别为str、int和float类型
class Student(TypedDict):
    name: str
    age: int
    score: float

# 创建一个Student类型的字典
student1: Student = {'name': 'Alice', 'age': 20, 'score': 90.5}
print(student1)

# 尝试创建一个不符合类型要求的Student类型的字典
student2: Student = {'name': 'Bob', 'age': '21', 'score': 80.0}  # 出现类型错误
print(student2)

上述代码定义了一个名为Student的TypedDict,它的键分别为'name'、'age'和'score',值分别为str、int和float类型。然后我们创建了一个符合Student类型要求的字典student1,并将其打印出来,结果为{'name': 'Alice', 'age': 20, 'score': 90.5}。

接着,我们尝试创建了一个不符合Student类型要求的字典student2,其中年龄的值为字符串类型'21',而不是int类型。当代码运行到这一行时,就会抛出一个类型错误,提示我们年龄的类型错误。这样,我们就能够在编译时就捕捉到这个类型错误,从而减少了运行时错误出现的可能性。

总结来说,TypedDict()提供了一种注解字典类型的方式,可以在编译时检测字典中的键和值的类型错误,从而增强了代码的可维护性和健壮性。它是Python类型注解工具中的一大利器。