Ich habe Klassen, die verwendet werden, um Daten von einem System zu erhalten, einige Änderungen vorzunehmen und sie dann in ein anderes System auszugeben. Was normalerweise der Weg ist, es in eine dict
oder eine list
zu konvertieren, nachdem ich alle notwendigen Konvertierungen vorgenommen habe.Stellen Sie eine Klasse als ein Dict oder eine Liste dar.
Bisher habe ich zwei Methoden namens as_dict()
und as_list()
gemacht und verwendet, wenn ich diese Darstellung brauche.
Aber ich bin neugierig, ob es eine Möglichkeit gibt, dict(instance_of_my_class)
oder list(instance_of_my_class)
zu tun.
Ich habe gelesen auf magic methods und es scheint, als ob das nicht möglich ist?
Und einige einfache Beispielcode, mit arbeiten:
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,
[...]
}
Warum müssen Sie die Klasse in ein Wörterbuch/eine Liste umwandeln? Jede Klasse hat ein eingebautes __dict__, das ist, wo Klassenattribute intern gespeichert werden, vielleicht reicht es aus, das zu speichern. – theAlse
Es gibt 'vars()' eingebaut, was im Grunde dasselbe ist wie 'obj .__ dict__'. – gatto
@theAlse hauptsächlich für die Konvertierung für Updates in Datenbanken oder für die einfache Umwandlung in JSON – gaqzi