递归调用python对象?

2024-10-01 22:42:35 发布

您现在位置:Python中文网/ 问答频道 /正文

有没有一种干净的方法可以对python对象的所有属性调用dict?具体地说,当我对我的对象调用dict时,我得到的是:

{'edges': [<dawg.Edge instance at 0x107aa0200>,
           <dawg.Edge instance at 0x10a581a70>,
           <dawg.Edge instance at 0x10656a680>]}

但我希望输出是实例的dict(),而不是实例描述。在

编辑:我想我应该澄清一下,我正在尝试jsonification对象,所以我需要type(obj['edges'][0])作为dict


Tags: 对象实例方法instanceobj编辑属性type
2条回答

我认为repr解决方案会更简洁,但是您也可以在得到上面描述的字典之后添加这行代码来获得您想要的东西(我称之为d1

d2 = {'edges' : map(lambda x: x.getDict(), d1['edges'])}

或者用列表理解代替地图

^{pr2}$

如果您能为我描述一下您想要的东西,我将尝试实现getDict或在lambda中编写更多内容,但我不太确定您要做什么。它是所有边域的字典吗?在

你可以给你的对象一个类似expanddicts的方法,它通过为每个相关的事物调用x.__dict__来构建字典。这似乎比试图搞乱内置的dict类型和__dict__属性要好。在

相关问题 更多 >

    热门问题