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

Python的dataclass中是否支持对变量进行分组管理?

解决方案

你可以通过嵌套dataclass的方式实现分组效果,将每个子分组单独定义为独立的dataclass,主dataclass直接引用子分组实例即可,具体实现如下:

标准库dataclass实现代码

from dataclasses import dataclass

# 定义子分组结构,三个分组字段结构一致可复用
@dataclass
class Group:
    data1: str
    data2: str

@dataclass
class MyData:
    grp1: Group
    grp2: Group
    grp3: Group

    @classmethod
    def from_dict(cls, data: dict) -> "MyData":
        main_group = data["Main group"]
        return cls(
            grp1=Group(**main_group["Group 1"]),
            grp2=Group(**main_group["Group 2"]),
            grp3=Group(**main_group["Group 3"])
        )

使用示例

# 假设http请求返回的字典为resp_data
my_data = MyData.from_dict(resp_data)
# 直接通过层级访问字段
print(my_data.grp1.data1)
print(my_data.grp2.data2)

如果不同分组的字段结构存在差异,只需要单独定义对应结构的子dataclass替换即可,无需修改主类的使用逻辑。如果需要省略手动写from_dict的步骤,也可以引入第三方库自动完成嵌套字典到嵌套dataclass的转换。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 08:06:05