私はあるシステムからデータを取得し、いくつかの変更を加えて別のシステムに出力するためのクラスを持っています。これは通常、私が必要な変換をすべて行った後にdict
またはlist
に変換する方法になります。クラスをdictまたはリストとして表現する
これまで私が行ったことは、as_dict()
とas_list()
という2つのメソッドを作成し、その表現が必要なときはいつでも使用していたことです。
私は好きな方法があれば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__が組み込まれています。つまり、クラスの属性が内部的に格納されています。単に格納するだけで十分でしょう。 – theAlse
基本的に 'obj .__ dict__'と同じ' vars() 'が組み込まれています。 – gatto
@theAlseは主にデータベースの更新やjsonへの簡単な変換のために変換するためのものです – gaqzi