python自定义容器
不可变容器:
1 class CountTuple: 2 def __init__(self,*args): 3 self.valus=[x for x in args] 4 self.counts={}.fromkeys(range(len(self.valus)),0) #自定义访问计数功能 5 6 def __len__(self): 7 return len(self.valus) 8 9 def __getitem__(self,index): 10 self.counts[index]+=1 11 return self.valus[index]
演示结果:
1 >>> c=CountTuple(3,8,7,2) 2 >>> cc=CountTuple(8,9,0,3,5) 3 >>> len(c) 4 4 5 >>> len(cc) 6 5 7 >>> c[2] 8 7 9 >>> cc[3] 10 3 11 >>> c[0]+cc[4] 12 8 13 >>> c.counts 14 {0: 1, 1: 0, 2: 1, 3: 0} 15 >>> cc.counts 16 {0: 0, 1: 0, 2: 0, 3: 1, 4: 1}