为jupyter中的所有对象配置漂亮的打印


Jupyter似乎通过lib.pretty子模块内置了一些漂亮的打印功能。但是,我想通过在显示中引入深度限制来配置默认打印,这样复杂的嵌套字典就会被截断。我可以使用Python的pprint.PrettyPrinter来完成这项工作,但我不清楚如何告诉Jupyter在被要求显示Python对象时始终使用此打印机。

这里的ipython文档描述了如何自定义各个类以具有自定义打印逻辑,但我实际上希望我的自定义打印机用于所有内容。

我怎么能用朱毕特做到这一点?

您似乎可以为object注册一个格式化程序,这将影响Jupyter显示的所有内容。然而,您必须分别为您想要针对的所有MIME类型进行操作:

import pprint
for key in ["text/html", "text/markdown"]:
get_ipython().display_formatter.formatters[key].for_type(
object,
lambda x: pprint.pformat(x, depth=2)
)

当然,您可以将pprint.pformat更改为任何您想要的漂亮打印功能。

最新更新