リストアイテムが認識される(属性/プロパティを持つ)リストの特定の特殊なケースが必要です。
- アイテムがリストの最後のアイテムかどうか
- リスト内のインデックスまたは「列挙子」
私が頭のてっぺんから考えることができるアプローチは次のとおりです。
- 、、、、
__setitem__
など__add__
をオーバーライドします。アルinsert
append
pop
- それらをpythonリストに保存するのではなく、次のアイテムを指す「次の」属性を持ちます。
- 評価前 (または更新後) にインデックス属性を同期するためのヘルパー関数の追加
- それらを属性として保存せず、クラスの「外部」で処理します
1) ほとんどの pythonic アプローチのように見えますが、かなりの数のメソッドをオーバーライドする必要があります。insert()
2)上記のメソッドを再実装する必要があるという問題があります(また、必要に応じてインデックスを実際に使用することはできませんpop()
)3)&4)「Yを実行する前にXを呼び出すことを忘れないでください」という落とし穴があります
上記のリスト内のすべてのアイテムは、常に同じクラスのインスタンスになります (またはそうあるべきです)。
これまたは私が気付いていないpythonicアプローチの既知の設計パターンはありますか?