|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
在小甲鱼第四十七课定制容器视频中,统计访问列表元素次数的代码(代码如下),实例化演示时c1=CountList(1,3,5,7,9),在访问self.values中的元素时,为什么可以直接写c1[1],不是应该写成self.values[1]吗,另外我自己测试时,self.values[1]可以访问得到结果,但是却没有改变访问次数,请问这是为什么?
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]
我的理解是,只有通过实例对象去访问value属性才会触发__getitem__魔法方法,达到记录的目的
|
|