PrettyPrinter是Python 3.6 及以上版本中的一个功能强大、支持语法高亮、描述性的美化打印包。它使用了改进的Wadler-Leijen布局算法,和Haskell打印美化库中的prettyprinter以及anti-wl-pprint、 JavaScript的Prettier、Ruby的prettypreinter.rb 以及 IPython的Ipython.lib.pretty类似。Python的PrettyPrinter集以上众家之所长,并在此基础上继续改进,因此也成为目前Python最强大的美化输出工具。
以下是使用PrettyPrinter输出结果的截图:


为什么Python还需要额外的美化打印包呢?
无论是IDE还是开发者手动运行命令,将数据打印到屏幕上是程序运行过程中程序员和数值交互的最基础的界面。改进该界面有助于提升开发体验和生产效率。Python本身和第三方库都提供了一些工具来达到此目的:
__repr__和__str__两个下划线方法返回普通字符串。__repr__应该尽可能返回语法正确的Python表达式,断言判断失败及控制台计算结果打印最常用的就是该方法。由于其完全基于字符串格式化,因此并不具备美化打印的功能。
标准库中的pprint模块为dicts, lists, tuples, sets, and frozensets等内置数据类型提供了美化打印的功能。它将__repr__方法应用在用户自定义的类实例上。然而,它使用了非常贪婪的布局算法,导致在很多情况下的美化打印出现问题。由于自定义的美化打印受__repr__所限制,pprint的作用也就限制于内置数据类型了。
第三方库pprintpp

文章介绍了Python中的PrettyPrinter库,这是一个强大的美化打印工具,尤其适合提升开发体验和生产效率。相较于Python内置的pprint模块和其他第三方库,PrettyPrinter采用了更先进的布局算法和语法高亮,同时提供了简单易用的API以便用户自定义美化规则。通过示例,作者展示了如何使用pretty_call和register_pretty来定制美化输出,以及如何处理带状态实例的表示。文章鼓励读者尝试使用PrettyPrinter以改善Python开发中的输出体验。
最低0.47元/天 解锁文章
1935

被折叠的 条评论
为什么被折叠?



