我有2级继承,因此父级是一个抽象类,它为其第一级子级初始化公用。 此外,每个第一级子级也是一个基本抽象类,可为第二(也是最后一个)级继承类初始化其他唯一的参数
这些类将类似于以下内容:
抽象父级:
class AbstractParent(metaclass=ABCMeta):
def __init__():
<initialize common stuff>
@abstractmethod
def abstract_method():
pass
第一级抽象子级:
class AbstractChild(AbstractParent, metaclass=ABCMeta):
def __init___():
AbstractParent.__init__(self)
<initialize common stuff relevant for AbstractChild>
@abstractmethod
def abstract_method():
pass
第二个也是最后一个孩子:
class Child(AbstractChild):
def __init___():
AbstractChild.__init__(self)
def abstract_method():
<implementation of something...>
具有多级继承,使多级抽象类似于我上面介绍的,是一种好习惯吗?
谢谢。
答案 0 :(得分:1)
如果您的项目的类系统需要它,那么这是一个好习惯。这完全取决于您要实现的目标。
例如。您可能有一所提供Course
的学校。这些课程可以是Cooking
和Painting
。现在,我们有不同的烹饪方式Italian
,Greek
,....
Course
和Cooking
在这里可以很抽象,因为我们永远不必创建通用Course
的实例。
这是好习惯吗?这一切都取决于您课程的内容。 Cooking
是否包含Course
没有的额外信息?也许是配料表?
但是,我们可能希望Cooking
不是抽象类。也许还可以参加一般的烹饪班。
这完全取决于您要实现的目标。