Inheritance 继承的好处是什么

Inheritance 继承的好处是什么,inheritance,exception,python-3.6,Inheritance,Exception,Python 3.6,我经常读图书馆的代码 我遇到了以下代码片段。 代码片段来自python调度库 我在网上搜索过,但没有找到满意的答案 class ScheduleError(Exception): """Base schedule exception""" pass class ScheduleValueError(ScheduleError): """Base schedule value error""" pass class IntervalError(Schedul

我经常读图书馆的代码

我遇到了以下代码片段。 代码片段来自python调度库

我在网上搜索过,但没有找到满意的答案

class ScheduleError(Exception):
    """Base schedule exception"""
    pass


class ScheduleValueError(ScheduleError):
    """Base schedule value error"""
    pass


class IntervalError(ScheduleValueError):
    """An improper interval was used"""
    pass
我想知道从一个没有属性或方法的类继承有什么好处


我可以从理论和实践的解释中获益

这个想法是,您可以微调您想要捕获的异常:

try:
    f() # may raise one of ScheduleError
except IntervalError:
    # do something about it
使用上述层次结构,您可以在
except
子句中选择要处理的异常。您甚至可以通过
捕获
f
中可能出错的所有内容,但异常除外(不推荐!)


整个过程都有很好的文档记录。

在出现错误的情况下,它可以让您适当地捕捉错误。整个程序的顶级错误处理程序<代码>例外情况除外:
允许您查看所有未处理的错误。中间层功能?您可以使用
检查除ScheduleError:
之外的任何与计划相关的问题。等等,是的。但我特别想知道为什么需要从ScheduleError继承ScheduleValueError。为了便于处理异常,我们仍然可以通过从异常基类继承ScheduleValueError来定义它。我们仍然能够捕获单独的异常。所以基本问题是继承ScheduleError类的好处是什么(假设它没有属性或方法whatssoever),我不知道这个用例。这可能有一个很好的理由。但是,如果不知道库…python调度库,这几乎是不可能的。只有一个文件,代码非常简单。大约400行。我读了代码,但不明白它的意义只是猜测:似乎
schedule\u value
是一个方法的参数;如果该值的一部分是一个间隔,那么如果
intervaleror
也是一个
ScheduleValueError