首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python中有一个抽象的父类和一个抽象的子类是一种好的做法吗?

在python中有一个抽象的父类和一个抽象的子类是一种好的做法吗?
EN

Stack Overflow用户
提问于 2019-06-10 16:36:08
回答 1查看 192关注 0票数 0

我有两级继承,这样父类就是一个抽象类,为它的第一级子类初始化通用的东西。此外,每个第一级子类也是一个基本抽象类,它为第二级(也是最后一级)继承类初始化附加的唯一参数

这些类看起来如下所示:

抽象的父级:

代码语言:javascript
复制
class AbstractParent(metaclass=ABCMeta):
    def __init__():
        <initialize common stuff>

    @abstractmethod
    def abstract_method():
        pass

第一级抽象子:

代码语言:javascript
复制
class AbstractChild(AbstractParent, metaclass=ABCMeta):

    def __init___():
        AbstractParent.__init__(self)
        <initialize common stuff relevant for AbstractChild>

    @abstractmethod
    def abstract_method():
        pass

第二级也是最后一级子级:

代码语言:javascript
复制
class Child(AbstractChild):

    def __init___():
        AbstractChild.__init__(self)

    def abstract_method():
        <implementation of something...>

拥有多级继承,这样多个级别是抽象的,这是不是一个很好的实践呢?

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2019-06-10 16:51:23

如果您的项目的类系统需要它,那么它就是一个很好的实践。这完全取决于您尝试实现的是什么。

例如。你可以有一所提供Course课程的学校。这些课程可以是CookingPainting。现在,对于烹饪,我们有不同的风格ItalianGreek,....

CourseCooking在这里可以是抽象的,因为我们永远不需要创建通用Course的实例。

这是一个很好的实践吗?这完全取决于您的类的内容。Cooking是否包含Course没有的额外信息?也许是一份配料表?

然而,我们可能希望Cooking不是一个抽象类。也许一个普通的烹饪班也是可能的。

这完全取决于你想要实现的目标。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56523015

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档