zoukankan      html  css  js  c++  java
  • 索引与切片运算符重载

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

  • 相关阅读:
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    C语言I博客作业09
    C语言I博客作业08
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
  • 原文地址:https://www.cnblogs.com/zengsf/p/9557403.html
Copyright © 2011-2022 走看看