索引与切片运算符重载
Posted zengsf
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了索引与切片运算符重载相关的知识,希望对你有一定的参考价值。
索引和切片运算符的重载
方法名 运算符和表达式 说明
__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
以上是关于索引与切片运算符重载的主要内容,如果未能解决你的问题,请参考以下文章