You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取Python dataclass的所有字段并打印对应值?

如何实现打印dataclass的字段名和对应值?

要获取dataclass的字段并打印对应值,可以通过dataclasses模块提供的工具函数实现,以下是两种可行方案:

方案一:通过dataclasses.fields()获取字段

dataclasses.fields()函数可以返回dataclass实例对应的所有Field对象列表,每个Field对象包含字段名称等元数据,再通过getattr()从实例中取出对应字段的值:

import dataclasses

@dataclasses.dataclass
class Test:
    a: str = "a value"
    b: str = "b value"

test = Test()

def print_data_class(dataclass_instance):
    # 获取dataclass的所有字段对象
    fields = dataclasses.fields(dataclass_instance)
    for field in fields:
        # 从实例中提取当前字段的值
        field_value = getattr(dataclass_instance, field.name)
        # 按期望格式输出
        print(f'"{field.name}": "{field_value}"')

print_data_class(test)

运行后输出:

"a": "a value"
"b": "b value"

方案二:通过dataclasses.asdict()转字典(更简便)

直接将dataclass实例转换为字典,再遍历字典的键值对打印,代码更简洁:

import dataclasses

@dataclasses.dataclass
class Test:
    a: str = "a value"
    b: str = "b value"

test = Test()

def print_data_class(dataclass_instance):
    # 将dataclass实例转为字典
    data_dict = dataclasses.asdict(dataclass_instance)
    for key, value in data_dict.items():
        print(f'"{key}": "{value}"')

print_data_class(test)

该方案的输出与方案一完全一致,适合追求简洁实现的场景。

内容的提问来源于stack exchange,提问作者Pioneer_11

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 10:24:13