鱼C论坛

 找回密码
 立即注册
查看: 635|回复: 1

Python47讲--对象不支持索引

[复制链接]
发表于 2018-7-18 16:26:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
代码要求:编写一个不可改变的自定义列表,要求记录列表中每个元素被访问的次数。
  1. class CountList:
  2.     def __init__(self,*args):
  3.         self.values = [x for x in args]
  4.         self.count = {}.fromkeys(range(len(self.values)),0)

  5.     def _len_(self):
  6.         return len(self.values)

  7.     def _getitem_(self,key):
  8.         self.count[key] +=1
  9.         return self.values[key]
复制代码


遇到的问题:类型错误,对象不支持索引
  1. >>> c1=CountList(1,3,5,7,9)   
  2. >>> c1[1]
  3. Traceback (most recent call last):
  4.   File "<pyshell#2>", line 1, in <module>
  5.     c1[1]
  6. TypeError: 'CountList' object does not support indexing
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2018-7-19 08:56:46 | 显示全部楼层
要支持索引的话必须实现__getitem__方法,你的看似实现了,但是写错了方法名,必须是前后双下划线,__len__也是
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-12-31 19:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表