繁体   English   中英

TypeError:'int对象没有属性'__getitem__'……但是在哪里?

[英]TypeError: 'int object has no attribute '__getitem__' … but where?

对于我正在编写的Markov链项目,我在页面顶部生成错误。 我知道这意味着我试图在整数对象上调用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的经验不是很丰富,因此将不胜感激。

谢谢!

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

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

val = self._lookupVal[iVal]

_lookupVal是在第11行定义的包含整数的字典(请参阅第14行)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM