打印,是全部程序员从小白时期就具有的神技,遇事不决打印一下,是 DEBUG 最简单且不依赖 IDE 的方式,自定义各类日志输出,也是项目成型后必备功能。
可是为了优雅的打印格式,每每须要对各类对象进行特殊格式化,可遇到字典和大段字符串也很差处理。
这篇文章介绍两个库模块,能够快速有效的解决全部 Python 对象的打印输出,没错,全部。
这是 Python 标准库模块,全称 pretty printer,可让各类数据结构更美观地输出。html
pprint.pprint
(object, stream=None, indent=1, width=80, depth=None, *, compact=False)python
pprint.pformat
(object, indent=1, width=80, depth=None, *, compact=False)git
和 pprint.pprint
的区别是,该函数不会打印到输出流,而是返回一个格式化字符串。程序员
classpprint.PrettyPrinter
(indent=1, width=80, depth=None, stream=None, *, compact=False)github
上文两个函数,实际都是构建一个 PrettyPrinter
对象,并调用对应的方法,因此当须要复用格式化的时候,咱们能够提早构建该对象。web
更多用法能够参考官方文档:编程
8.11. pprint - Data pretty printer - Python 3.5.6 documentationdocs.python.org微信
pprint
对字典 列表这类数据结构确实很好用,但遇到类、字符串仍然和 print 差异不大,所以这里有一个国人写的第三方库介绍给你们。数据结构
除了和 pprint 同样支持 dict, list, tuple 等常规变量的格式化输出,还支持 object 变量打印、长文本自动剪切。app
下面是做者 README 中和 pprint 的对比:
pprint:
beeprint:
pprint:
beeprint:
pprint:
beeprint:
pprint:
beeprint:
beeprint.pp
(o, output=True, max_depth=5, indent=2, width=80, sort_keys=True, config=None, **kwargs):
参数和 pprint 相似,多出了 sort_keys能够打印字典时是否按 key 排序( pprint 是默认排序,不可选),另外还有控制文本裁剪等行为的参数,能够从 beeprint.Config
里查看。
该库的 Github:https://github.com/panyanyany/beeprint
微信公众号:面向人生编程
编程思惟不该只存留在代码之中,更应伴随于整我的生旅途,这个公众号不仅聊技术,还会聊产品/互联网/经济学等普遍话题,因此也欢迎非程序员关注。