Python 3.x:替代pprint实现

Equ*_*oid 10 python python-3.x pprint

pprint处理列表,dicts等时,标准模块很不错.但有时自定义类完全无法使用:

  • 让它打印关于某个类的对象的可用信息的唯一方法是覆盖__repr__,但是如果我的类已经很好了,eval()'能够__repr__不显示我想在pprint输出中看到的信息呢?

  • 好的,我会写面向打印__repr__,但在这种情况下,不可能在我的课程中打印出漂亮的东西:

.

class Data:
    def __init__(self):
        self.d = {...}
Run Code Online (Sandbox Code Playgroud)

我不能打印self.d内容,我只能返回单行表示(至少不使用堆栈跟踪等).- 覆盖PrettyPrinter不是一个选项,我不想每次想要打印相同的类时都这样做.

那么......是否有任何替代pprint允许自定义类可以打印?

Mik*_*bov 4

IPython 中有一个改进和维护的“漂亮”库的 Python 2.x/3.x 端口:https://ipython.readthedocs.io/en/stable/api/ generated/IPython.lib.pretty.html