当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python dataclasses.asdict用法及代码示例


用法:

dataclasses.asdict(obj, *, dict_factory=dict)

将数据类 obj 转换为字典(通过使用工厂函数 dict_factory )。每个数据类都转换为其字段的字典,如name: value 对。数据类、字典、列表和元组被递归到。使用 copy.deepcopy() 复制其他对象。

在嵌套数据类上使用 asdict() 的示例:

@dataclass
class Point:
     x: int
     y: int

@dataclass
class C:
     mylist: list[Point]

p = Point(10, 20)
assert asdict(p) == {'x': 10, 'y': 20}

c = C([Point(0, 0), Point(10, 4)])
assert asdict(c) == {'mylist': [{'x': 0, 'y': 0}, {'x': 10, 'y': 4}]}

要创建浅拷贝,可以使用以下解决方法:

dict((field.name, getattr(obj, field.name)) for field in fields(obj))

如果 obj 不是数据类实例,则 asdict() 引发 TypeError

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 dataclasses.asdict。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。