當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。