一、__len__()和__getitem__()
如果在类中定义了__getitem__()方法,那么他的实例对象(假设为P)就可以这样P[key]取值。当实例对象做P[key]运算时,就会调用类中的__getitem__()方法
# -*- coding:utf-8 -*-
class DataTest: def __init__(self,id,address): self.id=id self.address=address self.d={self.id:1, self.address:"192.168.1.1" } def __getitem__(self,key): return "hello"data=DataTest(1,"192.168.2.11")print data[2]
二、字典定制
class Countlist:
def __init__(self, *args): self.values = [x for x in args] self.count ={}.fromkeys(range(len(self.values)),0)def __len__(self):
return len(self, values)def __getitem__(self, key):
self.count[key]+=1 return self.values[key]