我正在尝试为自己编写一个非常基本的 GTD 应用程序,不仅是为了组织起来,而且是为了更好地编码和 Python。但是,我在上课时遇到了一些麻烦。
以下是我到目前为止的课程:
class Project:
def __init__(self, name, actions=[]):
self.name = name
self.actions = actions
def add(self, action):
self.actions.append(action)
class Action:
def __init__(self, do='', context=''):
self.do = do
self.context = context
每个项目都有动作,但是我想这样做,以便项目也可以包含其他项目。说每天我想打印出所有东西的清单。我无法想出如何构建一个看起来像这样的列表
> Project A
> Actions for Project A
> Project B
> Sub project A
> Actions for Sub project A
> Sub project B
> Actions for Sub project B
> Sub project C
> Sub sub project A
> Actions for sub sub project A
> Sub sub project B
> Actions for sub sub project B
> Actions for Sub project C
> Actions for Project B
我很清楚将使用递归。我正在为是否创建另一个名为 SubProject 的类和为其创建子类 Project 而苦苦挣扎。那里的东西只会让我的大脑产生异常。
我已经能够获取项目并将它们添加到 Project 类中的 actions 属性中,但是随后我遇到了 MegaProject.actions.action.actions.action 情况开始弹出的地方。
如果有人可以帮助解决类结构,将不胜感激!