博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重写方法的利器-super
阅读量:6342 次
发布时间:2019-06-22

本文共 799 字,大约阅读时间需要 2 分钟。

重写方法的利器-super

class ilist(list):    def __init__(self,dft=None,r=list()):        super(ilist, self).__init__(r)        #list.__init__(self,r)        self.dft=dft    def __getitem__(self,n):        while len(self) <= n:            self.append(self.dft)        return super(ilist, self).__getitem__(n)
x=ilist(0)print x[4]print xx[0]=10a=x[0]+x[1]print a

结果:

>>> 0[0, 0, 0, 0, 0]10

 

由于刚开始不知道super,我是这样模拟x[n]的:

class ilist(list):    def __init__(self,dft=None,r=list()):        list.__init__(self,r)        self.dft=dft    def __getitem__(self,n):        while len(self) <= n:            self.append(self.dft)        for i,v in enumerate(self):            if i==n:                return v

就是用enumerate(self)蛮力遍历列表,当索引等于n时,就返回值v.

虽然也能达到目的,但是效率应该是非常低下了.

 

转载于:https://www.cnblogs.com/xiangnan/p/3398354.html

你可能感兴趣的文章
恶补C++ 之 类型转换
查看>>
LVM的学习资料
查看>>
SSH框架与MVC架构之间的关系
查看>>
配置Jenkins用户和权限
查看>>
Virtualbox虚拟机加入USB设备
查看>>
苏打绿 当我们一起走过 2012台北小巨蛋演唱会[1080P/720P/540P]
查看>>
两种交换机配置模式,以配置基于端口划分的VLAN为例
查看>>
Tomcat基础配置(2)-Tomcat连接器
查看>>
如何使用mysql命令在命令提示符下
查看>>
OpenGL(试用篇)——第一个OpenGL程序(1)
查看>>
用Maven部署war包到远程Tomcat服务器
查看>>
延时操作
查看>>
yum 时候出现Another app is currently holding the yum lock解决方法
查看>>
CyanogenMod 7 RC2,24小时下载量超 15 万
查看>>
给初级程序员的一封信
查看>>
文本编辑工具vim的使用方法
查看>>
一个很流行的版本控制系统Git学习笔记
查看>>
动态指定DataGrid的排序函数
查看>>
DOM
查看>>
Docker学习——docker镜像&&容器
查看>>