如何在自定义python 3类中支持漂亮的打印?

如何在自定义python 3类中支持漂亮的打印?,python,pretty-print,Python,Pretty Print,向自定义Python 3类添加漂亮打印支持的最可靠方法是什么 对于交互式数据评估,我发现非常重要的打印支持。但是,默认情况下,iPython的pretty打印机iPython.lib.pretty.pprint和标准库pprint.pprint仅支持内置结构类型(列表、元组、字典),其他所有类型都使用普通的repr()。值得注意的是,这甚至包括其他非常有用的实用程序,如collections.namedtuple() 因此,漂亮的打印输出通常格式怪异 我目前的awkard解决方法是定义如下类 c

向自定义Python 3类添加漂亮打印支持的最可靠方法是什么

对于交互式数据评估,我发现非常重要的打印支持。但是,默认情况下,iPython的pretty打印机
iPython.lib.pretty.pprint
和标准库
pprint.pprint
仅支持内置结构类型(列表、元组、字典),其他所有类型都使用普通的
repr()
。值得注意的是,这甚至包括其他非常有用的实用程序,如
collections.namedtuple()

因此,漂亮的打印输出通常格式怪异

我目前的awkard解决方法是定义如下类

class MyPrettyClass(dict):
    def __init__(self, ...):
        self.__dict__ = self
        self._class = self.__class__ # In order to recognize the type.
        ... 
        <A LOT OF FIELDS>
        ...
类MyPrettyClass(dict):
定义初始化(自…):
self.\uuu dict\uu u=self
self._class=self.uuu class_35;以识别类型。
... 

最初的目标是建立我自己的类不可知的漂亮打印机,但没有产生任何结果

对于
ipython
,pretty打印机将在默认设置为
\u repr\u pretty\u
之前查找
\u repr\u pretty\u方法

有关此功能的更多详细信息,请参阅

使用
pprint
,我知道的唯一方法是自定义
\uuuu repr\uuuu

可能与以下内容相关:
{'__lp_mockup_xml': <lxml.etree._ElementTree object at 0x0000021C5EB53DC8>,
 '__lp_mockup_xml_file': 'E:\\DataDirectory\\mockup.xml',
 '__lp_realrun_xml_file': 'E:\\DataDirectory\\realrun.xml',
 '_class': <class '__main__.readall'>,
 '_docopy': False,
 'dirname': 'E:\\DataDirectory'}