Bunu yapmanın standart bir yolu olup olmadığından emin değilim. Bir nesnenin tüm içeriğini dökmek için aşağıdaki işlevi uyguladı. Bu yinelemeli alt nesneleri dökümü gerekir, bu yüzden InstanceType
kontrol değilim, ama çalışmıyor: Bir elemanın kendisi bir nesne olup olmadığınıBir nesneyi art arda dökülen bir nesne
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
nasıl doğrulanır?
Asıl istediğim şudur: Verilen:
class B:
def __init__(self):
self.txt = 'bye'
class A:
def __init__(self):
self.txt = 'hello'
self.b = B()
a = A()
dump_obj(a)
aşağıdaki çıktıyı istiyorum:
txt -> hello
txt -> bye
Her şey Python'da bir nesnedir. – Matthias
Tamam: Bir elemanın types.InstanceType' olup olmadığını nasıl doğrulayabilirim (veya gerekli olan her şey), böylece yinelemeyi tetikleyebilir miyim? – dangonfast