返回介绍

定制打印显示

发布于 2024-01-29 22:24:14 字数 786 浏览 0 评论 0 收藏 0

正如我们在前一小节中看到的,默认情况下,捕获并打印基于类的异常的实例的时候,它们会显示我们传递给类构造函数的任何内容:

当没有捕获异常的时候,如果异常作为一条出错消息的一部分显示,这个继承的默认显示模式也会使用:

对于很多用途来说,这已经足够了。要提供一个更加定制的显示,我们可以在类中定义两个字符串表示重载方法中的一个(__repr__或__str__),来返回想要为异常显示的字符串。如果异常被捕获并打印,或者异常到达默认的处理器,方法返回的字符串都将显示:

这里要注意的细微一点是,我们通常为此目的必须重新定义__str__,因为内置的超类已经有一个__str__方法,并且在大多数环境下(包括打印),__str__优先于__repr__。如果你定义了一个__repr__,打印将会很乐意地调用超类的__str__。参见第29章了解关于这一特殊方法的更多细节。

对于未捕获的异常,方法返回的内容都包含在出错消息中,并且打印异常的时候显式化。这里,方法返回一个硬编码的字符串来说明,但是,它也可以执行任意的文本处理,可能附加到实例对象的状态信息。下一小节介绍状态信息选项。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文