中實現切片我正在試圖爲一個類實現切片功能,我創建了這個切片來創建一個向量表示。Python:在__getitem__
我有這個代碼到目前爲止,我相信會正確實現切片,但每當我做一個像v[4]
這樣的調用,其中v是一個向量python返回一個關於沒有足夠的參數的錯誤。所以我想弄清楚如何在我的類中定義getitem
特殊方法來處理普通索引和切片。
def __getitem__(self, start, stop, step):
index = start
if stop == None:
end = start + 1
else:
end = stop
if step == None:
stride = 1
else:
stride = step
return self.__data[index:end:stride]
注:擴展內建類型,如列表或元組必須實現'Python的2.X版本__getslice__'。請參閱https://docs.python.org/2/reference/datamodel.html#object.__getslice__ – gregorySalvan 2014-08-28 05:17:19
@gregorySalvan:該部分下面的那個兼容性示例是否只是遞歸? – Eric 2016-08-19 19:10:31
@Eric:不,因爲第二個冒號的存在會繞過'__get/set/delslice__'。雖然這很微妙。 – user2357112 2017-05-25 01:41:44