私は非常に初歩的な 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 クラスのアクション属性に追加することはできましたが、MegaProject.actions.action.actions.action シチュエーションがポップアップし始める場所に遭遇しました。
誰かがクラス構造を手伝ってくれたら、大歓迎です!