我不确定是否存在执行此操作的标准方法。我已经实现了以下功能来转储对象的所有内容。它必须递归地转储子对象,所以我检查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
一切都是在Python一个对象。 – Matthias 2013-05-03 08:18:27
好的:我如何验证一个元素是否是'types.InstanceType'(或其他需要的),这样我可以触发递归? – dangonfast 2013-05-03 08:19:37