我需要列表项的某些特殊情况列表(具有属性/属性),它告诉:
- 该项目是否是列表中的最后一项
- 他们在列表中的索引或“枚举数”
我能想到的方法是:
- 覆盖
__setitem__
,__add__
,insert
,append
,pop
等。人 - 不要将它们存储在 python 列表中,而是有一个指向下一个项目的“下一个”属性。
- 添加辅助函数以在评估之前(或更新之后)同步索引属性
- 不要将它们存储为属性,而是在类“外部”处理它
1) 似乎是大多数 pythonic 方法,但需要覆盖相当多的方法。insert()
2) 有必须重新实现上述方法的问题(如果我愿意,对索引并没有真正的帮助pop()
) 3) & 4) 有“你必须记住在做 Y 之前调用 X”的陷阱
上述列表中的所有项目将(或应该)始终是同一类的实例。
是否有已知的设计模式或我不知道的pythonic方法?