关于python:打印对象的属性,如json.dumps打印一个字典

Print an object's attributes like json.dumps prints a dict

本问题已经有最佳答案,请猛点这里访问。

编辑:这个答案中有一个解决方案:如何使用点"."来访问字典的成员?

使用听写时:

1
2
3
d = dict()
d['param1'] = 17
d['param2'] = 3

print json.dumps(d)打印很容易。使用对象/类时:

1
2
3
4
class z:
    pass
z.param1 = 17
z.param2 = 3

我无法打印z的所有属性,既不使用print json.dumps(z),也不使用print z。怎么做?

旁注但很重要:当使用dict合乎逻辑时,为什么要使用类/对象来存储参数?因为z.param1z['param1']短得多,写起来也很方便,特别是我的(法语)关键字[]'因为alt+gr+5(比如说2秒而不是0.5秒,但是当你有一个包含许多变量的长代码时,这很重要)


您可以简单地在类实例上使用__dict__来获取dict对象形式的属性,如下所示:

1
2
>>> z.__dict__
>>> {'param1': 17, '__module__': '__main__', 'param2': 3, '__doc__': None}

但是,如果需要删除__xxx__内置方法,则可能需要在类内指定__str__方法。