重写方法的利器-super
2024-10-08 01:53:04
重写方法的利器-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 x
x[0]=10
a=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.
虽然也能达到目的,但是效率应该是非常低下了.
最新文章
- ABP框架 - 应用服务
- JQuery------Select标签的各种使用方法
- SQLAchemy Core学习之Reflection
- Django站点管理--ModelAdmin
- LYK 快跑!(LYK别打我-)(话说LYK是谁)
- Python基础教程【读书笔记】 - 2016/8/3
- Android ViewPager动画切换
- 【译】StackExchange.Redis中文使用文档
- C#之实参和形参
- Node.js C/C++ 插件
- C# 网络通信功能 同步数据交互开发
- 深入理解CSS系列(一):理解CSS的盒子模型
- MVC+linq开发经验
- .NET C# Tostring format 格式化字符串
- loj2538 「PKUWC2018」Slay the Spire 【dp】
- 2017 清北济南考前刷题Day 5 morning
- MFC vs. SDK程序流程
- eclipse 创建dynamic web project不能运行
- LeetCode一句话题解
- 20155202 20155222 信息安全技术概论实验一 PGP的使用
热门文章
- [C#]设计模式-简单工厂-创建型模式
- nativescript——轮播图组件
- [LeetCode] Longest Uncommon Subsequence I 最长非共同子序列之一
- 机器学习技法:08 Adaptive Boosting
- [HDU 2036]改革春风吹满地
- [TJOI 2013]拯救小矮人
- [POI 2004]ZAW
- [WC2006]水管局长数据加强版
- hdu 3948 后缀数组
- 【Rain in ACStar HDU-3340】