7
我有一個類的列表對象的子類。現在我需要處理切片。從我在interrtubes上閱讀的所有內容中,必須使用__getitem__
方法完成。至少在Python 2.7+這是我正在使用的。我已經完成了這個(見下文),但是當我傳入一個片段時,不會調用__getitem__
方法。相反,一個切片完成並返回一個列表。我想返回一個myList的新實例。自定義Python切片,請告知
請幫我發現什麼是錯的。
謝謝!
class myList(list):
def __init__(self, items):
super(myList, self).__init__(items)
self.name = 'myList'
def __getitem__(self, index):
print("__getitem__")
if isinstance(index, slice):
print("slice")
return self.__class__(
self[x] for x in range(*index.indices(len(self)))
)
else: return super(myList, self).__getitem__(index)
if __name__ == "__main__":
print("\nI'm tesing out custom slicing.\n")
N = 10
L = myList(range(N))
L3 = L[3]
L02 = L[:2]