带有__getitem__的AttributeError

时间:2017-11-29 11:10:01

标签: python class attributeerror

我正在制作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__无关

0 个答案:

没有答案