kdb*_*kdb 5 python pretty-print
为自定义python3类添加漂亮打印支持的最可靠方法是什么?
对于交互式数据评估,我发现漂亮的打印支持非常重要.但是,默认情况下,iPython的漂亮打印机IPython.lib.pretty.pprint和标准库pprint.pprint都只支持内置结构类型(列表,元组,字典),并将plain 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>
...
Run Code Online (Sandbox Code Playgroud)
在一个真实世界的例子中,这导致了
{'__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'}
Run Code Online (Sandbox Code Playgroud)
有没有更好的方法来获得漂亮的打印支持?
弱相关:我的问题在python3中低级内省?最初旨在建立我自己的类不可知的漂亮打印机,但没有产生任何结果.
对于ipython,漂亮打印机将在_repr_pretty_默认为 之前查找该方法__repr__。
据pprint我所知,唯一的方法就是定制__repr__。
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |