我正在制作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__()
我的测试代码在这里:
import math
import kaart
map = kaart.Kaart()
print(map[1, 2])
但我收到错误消息AttributeError: Kaart instance has no attribute '__getitem__'
我做错了什么?我确实有__getitem__
功能,为什么他没有认出来?
我遇到与__setitem__
和__iter__
相同的问题,但与__str__
无关