You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让自定义Python异常仅显示类名而非完整命名空间?

解决自定义异常显示完整命名空间的问题

要让自定义异常抛出时仅显示类名(如MyException: bad stuff happened),而非带完整模块路径的命名空间,可通过以下两种方式实现:

方法1:修改异常类的__module__属性

在自定义异常类中指定__module__为'builtins',与Python内置异常的模块标识保持一致,Python输出异常时就会只显示类名:

class MyException(Exception):
    __module__ = 'builtins'
    pass

方法2:重写异常类的__repr__方法

通过自定义__repr__方法,返回仅包含类名和异常消息的格式,覆盖默认的带模块路径的显示逻辑:

class MyException(Exception):
    def __repr__(self):
        return f"{self.__class__.__name__}: {self}"

如果需要str()输出也保持相同格式,可同时重写__str__方法,不过通常仅修改__repr__即可满足异常抛出时的显示需求。


内容的提问来源于stack exchange,提问作者stam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 23:50:25