我讀了一些關於python3中的slice的內容。 然後我寫了一個程序,試圖實現getitem(self,slice(s))。 代碼低於:[python]:如何在python3中實現切片?
class NewList:
def __init__(self, lst):
print('new list')
self._list = lst
def __getitem__(self, x):
if type(x) is slice:
return [ self._list[n] for n in range(x.start, x.stop, x.step) ] #error?
else:
return self._list[x]
...
nl1 = NewList([1,2,3,4,5])
nl1[1:3] #error occurs
後來我發現x.step是無,這令範圍引發異常。 那麼,我該如何實現getitem方法?
此外,你的'NewList'類應該繼承'list' ... – JBernardo
@JBernardo - 你是否應該避免明確地使用切片對象? – Alcott