TypeError:' int对象没有属性' __ getitem __' ... 但是哪里?

时间:2015-04-22 16:03:14

标签: python typeerror

对于我写的马尔可夫链项目,我在页面顶部生成错误。我知道这意味着我试图在整数对象上调用list方法,这意味着我要么a)没有正确初始化列表,要么b)在程序的某个点覆盖带有整数值的列表。但是,我一直试图调试这几个小时,在我的小程序中找不到问题。错误跟踪如下:

Traceback (most recent call last):
  File "/Users/adamlind/PycharmProjects/Capstone/Song.py", line 9, in <module>
    musicMarkov.add(["c", 4]) #row
  File "/Users/adamlind/PycharmProjects/Capstone/Music.py", line 19, in add
    self._markov.add(iNote[0], fNote[0])
  File "/Users/adamlind/PycharmProjects/Capstone/Markov.py", line 22, in add
    self._adjMatrix[val[iVal]][val[fVal]] += 1
TypeError: 'int' object has no attribute '__getitem__'

这是一个包含我的项目的GitHub仓库的链接(这是我的第一个StackOverflow问题,不确定这是否是不赞成的): https://github.com/adamlind323/CSC493

我检查了几次,但无法弄清楚我在哪里覆盖。我对Python不是很有经验,所以对此的任何和所有帮助都将非常感激。

谢谢!

1 个答案:

答案 0 :(得分:0)

val是int。尝试索引(val[iVal])会导致异常。

在第21行,您可以通过以下方式初始化val

val = self._lookupVal[iVal]

_lookupVal是第11行定义的字典,包含整数(参见第14行)