这是否有共同的功能?现在我正在做以下事情(并覆盖__len__
)
idx < 0:
idx = len(self) + idx
if idx < 0 or idx >= len(self):
raise IndexError, "array index (%d) out of range [0, %d)" %(idx, len(self))
答案 0 :(得分:3)
这对我来说似乎很好。我不认为有更好的或内置的方式来做到这一点;毕竟,重写是关于提供自己的功能。
编辑删除相当愚蠢的建议。
答案 1 :(得分:0)
对于那些由Google带到这里的人,我想我要补充一下我刚提出的内容。似乎对我来说很棒。
def __getitem__(self, index):
# Do this until the index is greater than 0.
while index < 0:
# Index is a negative, so addition will subtract.
index += len(self)
if index >= len(self):
raise IndexError
# Replace with your custom interface.
return self.__instance.GetValue(index)