繁体   English   中英

为什么需要从 BaseException 派生自定义异常?

[英]Why do you need to derive your custom exception from BaseException?

您在 Python 中创建的每个 class 都隐式派生自object 要创建新错误 class,您必须从BaseException或其子类之一派生它(通常,为此目的使用Exception )。 此自定义异常将成功通过isinstance(MyException, object)测试,因此它仍然是object 但我想知道,实施这种限制的原因是什么? 为什么我们需要从BaseException或其后代派生而不是这样做:

class MyException:
    pass


raise MyException()

raise需要一些特殊的 C 级属性才能正常工作(尤其是这里的这些)。

在纯 python 中将这些放入 object 的唯一方法是BaseException 正因为如此,python 开发人员简单地决定每个可提升的 object,即使在 C 模块中定义,也应该从BaseException继承以简化检查。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM