标准的pprint
模块在处理列表、字典等对象时很好用。但是在处理自定义类时,有时就完全不能用了:
想要让它输出某个类的对象的可用信息,唯一的方法是覆盖
__repr__
,但是如果我的类已经有了漂亮的、可通过eval()
运行的__repr__
,而且这个__repr__
并没有显示我想在pprint输出中看到的信息怎么办?好吧,我会编写面向打印的
__repr__
,但是在这种情况下,无法对类内部的某些内容进行漂亮的打印:
.
class Data:
def __init__(self):
self.d = {...}
我无法对self.d
内容进行美化打印,只能返回单行表示(至少不涉及堆栈跟踪等)。
覆盖PrettyPrinter
不是一个选择,因为我不想每次想要美化打印同一个类时都要这样做。
那么...有没有任何其他的方法可以使自定义类可美化打印,而不需要使用pprint?
__repr__
时,无法在类内部对某些内容进行漂亮的打印?它返回的字符串可以包含对象的任何字段的表示。 - utapyngo