python - 类继承自同一个类

标签 python class inheritance magic-methods

我对 python 2.7 很陌生,并且一直在寻找这个问题的答案几个小时,所以我想我应该在这里问我的第一个问题关于溢出。我希望有一天能为社区添加一些东西,而不是一直潜伏>.<

我正在创建一个项目管理工具,您可以在项目下定义必要的基本任务,并可能定义从该项目继承的其他子任务基础任务。我认为为了获得最大的灵活性,最好在项目类下创建一个通用的任务类。当用户想要创建子任务时,它会继承基本任务。我想为基本任务分配一小时值,如果没有子任务则由用户定义,如果有子任务则由所有子任务定义的小时数之和来定义。

到目前为止,这就是我所拥有的......:

class Task(self, superOBJ):
    #Define Tasks That Conform To SOW Here
    def __init__(self,cls,title):
        self.title=title
        self.description=""
        self.hours=None
    def Hours(self):
        if #NO SUBTASKS
            return self.hours
        else:
            return #SUM OF SUBTASKHOURS

    def SetHours(self,super,hours):
        self.hours=hours

这就是我陷入困境的地方,我有一些想法,但没有足够的深度来理解它们

所以我的问题是处理继承的“好”方法是什么?有什么神奇的方法可以帮上忙吗?

最佳答案

您似乎建议每个子任务应该是从Task派生的新类的实例。 。如果是这样,我建议避免这种方法。您尝试创建的内容可以轻松地通过 Task 树进行建模。实例,其中每个任务对象保存一个子任务(子任务)列表(可能为空)。然后,您可以通过递归迭代子任务列表来计算任务所需的时间,以累积特定任务下叶节点中的时间(即 else 方法中的 Hours 子句)。

在某些时候,您可能有充分的理由定义源自 Task 的新任务类。但只有当他们有某种与如何计算时间相关的特殊行为时才应该如此。

关于python - 类继承自同一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14735636/

相关文章:

python - 更改 python MySQLdb 模块上的 paramstyle

python - 交换字符串中的大小写

python - 大小不等的压缩列表

PHP 类命名空间与前缀

java - 如何判断向下转型在 Java 中是否合法?

python - 使用 Adwords API 将自定义受众群体添加到广告组

c++ - 使用类模板需要参数列表

Python 问题 - 映射和类 - 初学者

python - 从嵌套字典构建类

java - 抽象类变量和继承