我有两级继承,这样父类就是一个抽象类,为它的第一级子类初始化通用的东西。此外,每个第一级子类也是一个基本抽象类,它为第二级(也是最后一级)继承类初始化附加的唯一参数
这些类看起来如下所示:
抽象的父级:
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...>拥有多级继承,这样多个级别是抽象的,这是不是一个很好的实践呢?
谢谢。
发布于 2019-06-10 16:51:23
如果您的项目的类系统需要它,那么它就是一个很好的实践。这完全取决于您尝试实现的是什么。
例如。你可以有一所提供Course课程的学校。这些课程可以是Cooking和Painting。现在,对于烹饪,我们有不同的风格Italian,Greek,....
Course和Cooking在这里可以是抽象的,因为我们永远不需要创建通用Course的实例。
这是一个很好的实践吗?这完全取决于您的类的内容。Cooking是否包含Course没有的额外信息?也许是一份配料表?
然而,我们可能希望Cooking不是一个抽象类。也许一个普通的烹饪班也是可能的。
这完全取决于你想要实现的目标。
https://stackoverflow.com/questions/56523015
复制相似问题