码迷,mamicode.com
首页 > 其他好文 > 详细

索引与切片运算符重载

时间:2018-08-30 00:19:47      阅读:303      评论:0      收藏:0      [点我收藏+]

标签:操作   sel   结果   __init__   运算符和表达式   code   表达式   slice   art   

索引和切片运算符的重载
  方法名 运算符和表达式 说明
  __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

索引与切片运算符重载

标签:操作   sel   结果   __init__   运算符和表达式   code   表达式   slice   art   

原文地址:https://www.cnblogs.com/zengsf/p/9557403.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!