索引與切片運算符重載
阿新 • • 發佈:2018-08-30
作用 col get 屬性 pan () tar 定義 code
索引和切片運算符的重載
方法名 運算符和表達式 說明
__getitem__(self, i) x = self[i] 索引/切片取值
__setitem__(self, i, val) self[i] = val 索引/切片賦值
__delitem__(self, i) del self[i] 刪除索引/切片
作用:
讓自定義的類的對象能夠支持索引和切片操作
class MyList: def __init__(self, iterable=()): self.data = list(iterable)def __getitem__(self, i): #索引/切片取值 且傳入的i可以能對象。傳入的是slice對象 return self.data[i] def __setitem__(self, i, val): self.data[i] = val def __delitem__(self, i): del self.data[i] L1 = MyList([1,2,3,4,5,6,7]) print(L1[3]) L1.__setitem__(3,5) L1[2] = 10 print(L1) del L1[0]print(L1) 輸出結果: 4 MyList([1, 2, 10, 5, 5, 6, 7]) MyList([2, 10, 5, 5, 6, 7])
slice 函數:
作用:
用於創建一個slice切片對象,此對於用於切片操作的傳值
格式:
slice(start=None, stop=None, step=None)
slice對象的屬性
s.start 切片的起始值, 默認為None
s.stop 切片的終止值, 默認為None
s.step 切片的步長, 默認為None
索引與切片運算符重載