首页 > 解决方案 > 多个索引一个类?

问题描述

我有以下代码:

class C:
    def __getitem__(self,a,b):
        return 1

c = C()
c[2,3]

TypeError: Missing 1 required positional argument : b

我的问题是如何在索引时提供第二个参数c

标签: pythonindexing

解决方案


没有办法直接在__getitem__(docs)中处理这个问题;您必须c[x]返回某种子对象,您可以使用第二个 inxed[y]来获取单个项目。您可能想要的是__getitem__接受具有此类坐标的元组:

def __getitem__(self, tuple):
    y, x = tuple
    return self.matrix[y][x]

然后做:

c[x, y]

推荐阅读