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.param1比z['param1']短得多,写起来也很方便,特别是我的(法语)关键字[、]、'因为alt+gr+5(比如说2秒而不是0.5秒,但是当你有一个包含许多变量的长代码时,这很重要)
- stackoverflow.com/questions/192109/…
- @Anil或其他:是否会有一个简短的黑客(通过将dict子类化)来使用d.param1而不是d['param1']访问dict?
- 这就是你要找的吗?stackoverflow.com/a/23689767/2652580
- 是的@anil!解决了的!
您可以简单地在类实例上使用__dict__来获取dict对象形式的属性,如下所示:
1 2
| >>> z.__dict__
>>> {'param1': 17, '__module__': '__main__', 'param2': 3, '__doc__': None} |
但是,如果需要删除__xxx__内置方法,则可能需要在类内指定__str__方法。
- 你能举例说明一下你对__str__的看法吗?
- 你的预期产量是多少?
- 这个输出,@zdar:{'param1': 17, 'param2': 3}。