【发布时间】:2020-06-02 10:54:03
【问题描述】:
我想从数据类中获取字典,但没有具有字段参数 repr = False 的类变量。
from dataclasses import dataclass, field, asdict
@dataclass
class Person:
name: str
age: int = field(repr = False)
person = Person(name = 'Max', age=42)
print(asdict(person))
我得到了什么:
{'name': 'Max', 'age': 42}
我想要什么:
{'name': 'Max'}
我的解决方案是创建新方法,例如:
def dict_without_repr_field(self) -> dict:
dict_to_show = self.__dict__.copy()
for key in self.__dict__.keys():
if not self.__dataclass_fields__[key].repr:
dict_to_show.pop(key)
return dict_to_show
有没有更简单、更好或更好的解决方案?
【问题讨论】:
标签: python-3.x python-dataclasses