我正在做一个class
,但是当我测试它时,我收到了非常奇怪的错误消息
这是我的代码:
class Kaart:
def __init__(self, rows = 10, colls = 10):
self.rows = rows
self.colls = colls
self.matrixRC = []
for _ in range(rows):
self.matrixRC.append([2 for _ in range(colls)])
def __str__(self):
retVal = '\n'.join(''.join(map(str, row)) for row in self.matrixRC)
for index, new in enumerate((' ', '#', '?')):
retVal = retVal.replace(str(index), new)
return retVal
def __getitem__(self, key):
r, c = key
return self.matrixRC[r][c]
def __setitem__(self, key, value):
r, c = key
self.matrixRC[r][c] = value
def __iter__(self):
self.matrixRC.__iter__()
我的测试代码在这里:
^{pr2}$但是我收到了错误消息AttributeError: Kaart instance has no attribute '__getitem__'
我做错什么了?我有一个__getitem__
函数,为什么他不认识它?在
我对__setitem__
和__iter__
也有同样的问题,但是__str__
没有
问题是在缩进中,我使用了制表符和四元空格,这导致了一些问题,使得python无法识别代码。在
我认为您的bug是一个语法错误,这意味着您不会缩进您定义的所有函数。它们不属于类,而是属于模块的命名空间。试着添加缩进所有他们,请让我知道如果这是问题。在
相关问题 更多 >
编程相关推荐