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

  • 相关阅读:
    oracle11g安装客户端检查先决条件失败
    WinForm textbox 只允许输入数字
    Oracle存储过程
    Oracle游标
    Oracle之PL/SQL流程控制
    Oracle 变量
    log4net 使用
    Python Matplotlib 画图显示中文问题
    Oracle 数据迁移到 SQL Server
    C结构体【转】
  • 原文地址:https://www.cnblogs.com/zengsf/p/9557403.html
Copyright © 2011-2022 走看看