Я не уверен, есть ли стандартный способ сделать это. Я выполнил следующую функцию для сброса всего содержимого объекта. Он должен рекурсивно выгружать под-объекты, поэтому я проверяю InstanceType
, но он не работает:
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
Как проверить, является ли элемент самим объектом?
То, что я действительно хочу, это следующее. Дано:
class B:
def __init__(self):
self.txt = 'bye'
class A:
def __init__(self):
self.txt = 'hello'
self.b = B()
a = A()
dump_obj(a)
Мне нужен следующий вывод:
txt -> hello
txt -> bye