【发布时间】:2021-03-05 18:22:36
【问题描述】:
我有像这样的带有静态字段的数据类:
from typing import ClassVar
from dataclasses import dataclass, asdict
@dataclass
class X:
static_field: ClassVar[str] = "static_value"
normal_field: str
@dataclass
class Y:
x: X
y = Y(x=X(normal_field="normal_value"))
asdict(y) # yields {'x': {'normal_field': 'normal_value'}}
如何使static_field 成为输出的一部分? static_field 字段应该永远在实例化类时设置。
【问题讨论】:
-
为什么您希望它们包含在返回的字典中?
-
我正在创建一些数据类,用于序列化/反序列化一些 json 数据。为了填充正确的数据类,有时我需要一个对象上的
"type": "enum"或"type": "struct"字段。本质上,存在与不应更改的数据类耦合的识别字段