Inheritance 继承的好处是什么
我经常读图书馆的代码 我遇到了以下代码片段。 代码片段来自python调度库 我在网上搜索过,但没有找到满意的答案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
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