以交互方式使用python时,有时有必要显示某种任意复杂的数据结构(如带有嵌入式列表的列表等)。默认的显示它们的方式只是一个巨大的线性转储,它一遍又一遍地包装,你必须仔细解析才能阅读它。
有没有什么东西可以让任何python对象以一种更合理的方式显示它。例如:
[0, 1,
[a, b, c],
2, 3, 4]
而不是:
[0, 1, [a, b, c], 2, 3, 4]
我知道这不是一个很好的例子,但我想你已经明白了。
发布于 2008-09-18 11:44:55
from pprint import pprint
a = [0, 1, ['a', 'b', 'c'], 2, 3, 4]
pprint(a)
请注意,对于像我的示例这样的简短列表,pprint实际上会在一行中打印所有内容。然而,对于更复杂的结构,它在打印数据方面做得相当好。
发布于 2008-09-18 12:55:40
有时候YAML可以很好地做到这一点。
import yaml
a = [0, 1, ['a', 'b', 'c'], 2, 3, 4]
print yaml.dump(a)
产生:
- 0
- 1
- [a, b, c]
- 2
- 3
- 4
发布于 2008-09-18 14:56:27
除了pprint.pprint
之外,pprint.pformat
对于制作可读的__repr__
非常有用。我的复杂__repr__
通常是这样的:
def __repr__(self):
from pprint import pformat
return "<ClassName %s>" % pformat({"attrs":self.attrs,
"that_i":self.that_i,
"care_about":self.care_about})
https://stackoverflow.com/questions/91810
复制相似问题