AttributeError与\u getitem__

2024-09-26 22:12:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个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__没有


Tags: keyinself消息fordef错误class
2条回答

问题是在缩进中,我使用了制表符和四元空格,这导致了一些问题,使得python无法识别代码。在

我认为您的bug是一个语法错误,这意味着您不会缩进您定义的所有函数。它们不属于类,而是属于模块的命名空间。试着添加缩进所有他们,请让我知道如果这是问题。在

相关问题 更多 >

    热门问题