1. 程式人生 > >索引與切片運算符重載

索引與切片運算符重載

作用 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

索引與切片運算符重載