1

假设我有一个类 X,它有 2 个属性:i 和 j。

我希望有 :

x = X((1,2,3),(2,3,4)) #this would set i to (1,2,3) and j to (2,3,4)

我现在希望下标以下列方式工作:

a, b = x[1,2] #a should now be 2 and b should now be 3

目前我正在尝试这个:

    def __getitem__(self, i, j):
        return self.x[i] , self.y[j]

然而,这一直给我错误getitem 只接受 3 个参数,但给出了 2 个(例如,当我尝试打印出 x[1,2] 时)

4

1 回答 1

7

逗号是元组打包运算符。x[1, 2]来电x.__getitem__((1, 2))

def __getitem__(self, ij):
   i, j = ij
   return self.x[i], self.y[j]
于 2011-10-25T17:50:47.607 回答