Exmantive Dictionary在Python中的使用

时间:2013-05-27 05:08:21

标签: python dictionary

我在使用函数__dict__和python中的某个对象时遇到了一些麻烦。我想要做的是创建一个字典,显示原始对象中所有子对象的所有属性。但是当我调用这个函数时,我会得到类似的结果:

<Attribute><models.Object instance at 0x0000000002EF4288></Attribute>

我是python的新手所以我不确定它是如何工作的。我的目标是以字典的形式返回Object实例的内容。提前谢谢你们。

是的,感谢bren指出错误,确切的输出就是这样:

{'Attribute': <models.Object instance at 0x0000000002EF4288>}

我所做的操作只是wrapper.__dict__

类包装器是:

class wrapper:
    def wrapper(self, object):
        self.Attribute = object

虽然object包含其他属性,但我想把它们放在一个字典中。

1 个答案:

答案 0 :(得分:0)

您可能正在寻找inspect.getmembers()

import inspect
from pprint import pprint
class Foo():
    def __init__(self):
        self.foo = 'bar'
    def foobar(self):
        pass

instance = Foo()

pprint(dict(inspect.getmembers(instance)))
>>> 
{'__doc__': None,
 '__init__': <bound method Foo.__init__ of <__main__.Foo instance at 0x7b07b0>>,
 '__module__': '__main__',
 'foo': 'bar',
 'foobar': <bound method Foo.foobar of <__main__.Foo instance at 0x7b07b0>>}