Mam klasy, które są używane do pobierania danych z jednego systemu, dokonywania pewnych modyfikacji, a następnie wysyłania ich do innego systemu. Zwykle przechodzi to konwersję na dict
lub list
po wykonaniu wszystkich niezbędnych konwersji.Reprezentowanie klasy jako dyktowanej lub listy
Do tej pory zrobiłem dwie metody o nazwie as_dict()
i as_list()
i użyłem tego, gdy potrzebuję tej reprezentacji.
Ale jestem ciekawy, czy istnieje sposób, aby móc wykonać dict(instance_of_my_class)
lub list(instance_of_my_class)
.
Czytałem w górę na magic methods i wydaje się, że to nie jest możliwe?
A niektóre prosty przykładowy kod do pracy z:
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,
[...]
}
dlaczego trzeba przekształcić klasę w słownik/listę? każda klasa ma wbudowany __dict__, czyli tam, gdzie atrybuty klas są przechowywane wewnętrznie, może wystarczy je zapisać. – theAlse
Istnieje 'vars()', który jest w zasadzie taki sam jak 'obj .__ dict__'. – gatto
@theAlse głównie do konwersji na aktualizacje w bazach danych lub do prostej konwersji na json – gaqzi