Ho classi che vengono utilizzate per ottenere dati da un sistema, apportando alcune modifiche e quindi trasferendole in un altro sistema. Che di solito va convertito in un dict
o list
dopo aver effettuato tutte le conversioni necessarie.Rappresenta una classe come dict o lista
Finora quello che ho fatto è che ho fatto due metodi chiamati as_dict()
e as_list()
e li ho usati ogni volta che ho bisogno di quella rappresentazione.
Ma sono curioso di sapere se c'è un modo per essere in grado di fare dict(instance_of_my_class)
o list(instance_of_my_class)
.
Ho letto il magic methods e sembra che questo non sia possibile?
E alcuni esempi di codice semplice per lavorare con:
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,
[...]
}
perché è necessario trasformare la classe in un dizionario/elenco? ogni classe ha un __dict__ incorporato, cioè dove gli attributi di classe sono memorizzati internamente, forse è sufficiente archiviarli. – theAlse
C'è il componente 'vars()' che è praticamente lo stesso di 'obj .__ dict__'. – gatto
@theAlse principalmente per la conversione per gli aggiornamenti nei database o per la semplice conversione in json – gaqzi