Non sono sicuro che esista un metodo standard per farlo. Ho implementato la seguente funzione per scaricare tutti i contenuti di un oggetto. Deve ricorsivamente discarica sub-oggetti, quindi sono il controllo per InstanceType
, ma non funziona:Eseguire il dump di un oggetto in modo ricorsivo
import types
def dump_obj(obj, level=0):
for a in dir(obj):
try:
if type(obj.__dict__[a]) == types.InstanceType:
dump_obj(obj.__dict__[a], level + 2)
else:
try:
print " " * level + "%s -> %s" % (a, obj.__dict__[a])
except:
pass
except:
pass
Come posso verificare se un elemento di per sé un oggetto?
Quello che voglio veramente è il seguente. Dato:
class B:
def __init__(self):
self.txt = 'bye'
class A:
def __init__(self):
self.txt = 'hello'
self.b = B()
a = A()
dump_obj(a)
voglio il seguente output:
txt -> hello
txt -> bye
Tutto è un oggetto in Python. – Matthias
Ok: come posso verificare se un elemento è di 'types.InstanceType' (o qualunque cosa sia necessaria), in modo che possa attivare la ricorsione? – dangonfast