【发布时间】:2013-04-18 22:15:36
【问题描述】:
我有用于从一个系统获取数据、进行一些修改然后将它们输出到另一个系统的类。在我完成所有必要的转换之后,通常会将其转换为 dict 或 list。
到目前为止,我已经完成了两种方法,称为as_dict() 和as_list(),并在我需要该表示时使用它。
但我很好奇是否有办法做到dict(instance_of_my_class) 或list(instance_of_my_class)。
我一直在阅读magic methods,似乎这是不可能的?
还有一些简单的示例代码可以使用:
class Cost(object):
@property
def a_metric(self):
return self.raw_data.get('a_metric', 0) * 0.8
[..]
# Repeat for various kinds of transformations
def as_dict(self):
return {
'a_metric': self.a_metric,
[...]
}
【问题讨论】:
-
为什么需要将类转换成字典/列表?每个类都有一个内置的dict,这是类属性在内部存储的地方,也许只存储它就足够了。
-
内置了
vars(),与obj.__dict__基本相同。 -
@theAlse 主要用于将其转换为数据库中的更新或简单转换为 json