これを行う標準的な方法があるかどうかわかりません。オブジェクトのすべての内容をダンプする次の関数を実装しました。これは、再帰的にサブオブジェクトをダンプしなければならないので、私は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
Ok:要素が 'types.InstanceType'(または必要なもの)であるかどうかを確認することができます。再帰をトリガーできますか? – dangonfast