python fieldnames,Python 3.7 获取@dataclass类中字段类型(Field)的方法
时间: 2023-11-22 19:55:01 浏览: 131
在 Python 3.7 中,可以使用 `typing.get_type_hints()` 函数获取类的字段类型。在 `@dataclass` 类中,可以通过 `__annotations__` 属性获取字段名称和类型的字典,然后使用 `get_type_hints()` 函数获取类型信息。
以下是一个示例代码:
```python
from typing import get_type_hints
from dataclasses import dataclass
@dataclass
class Person:
name: str
age: int
# 获取字段类型字典
field_types = Person.__annotations__
# 获取字段类型信息
type_hints = get_type_hints(Person)
# 输出结果
for field_name, field_type in field_types.items():
print(f"{field_name}: {type_hints[field_name]}")
```
输出结果为:
```
name: <class 'str'>
age: <class 'int'>
```
其中,`field_types` 是一个包含字段名称和类型的字典,`type_hints` 是一个包含字段名称和类型信息的字典。可以通过遍历 `field_types` 字典,并从 `type_hints` 字典中获取对应的类型信息来获取完整的字段信息。
阅读全文