dataclass中如何使用TypedDict
时间: 2024-03-21 16:37:36 浏览: 22
可以使用`dataclass`和`TypedDict`结合来定义一个带有特定键和值类型的数据类。以下是一个示例:
```python
from dataclasses import dataclass
from typing import TypedDict
class Person(TypedDict):
name: str
age: int
@dataclass
class MyClass:
person: Person
id: int
```
在上述示例中,首先定义了一个`TypedDict`类型的子类`Person`,其中包含了`name`和`age`两个键,分别对应字符串和整数类型的值。然后,在`MyClass`数据类中,定义了一个名为`person`的成员变量,类型为`Person`,即带有特定键和值类型的`TypedDict`类型。同时,还定义了一个名为`id`的整数类型成员变量。
接下来,可以实例化`MyClass`类,并使用`person`成员变量存储一个带有特定键和值类型的字典。例如:
```python
obj = MyClass(person={"name": "Alice", "age": 25}, id=1)
print(obj.person["name"]) # 输出 "Alice"
print(obj.person["age"]) # 输出 25
```
上述代码实例化了`MyClass`类,并将一个带有特定键和值类型的字典存储在`person`成员变量中。最后,打印`person`字典中的`name`和`age`键对应的值,结果分别为`Alice`和`25`。
总之,可以使用`dataclass`和`TypedDict`结合来定义一个带有特定键和值类型的数据类,用于存储数据。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)