1

iとjの2つの属性を持つクラスXがあると仮定します。

欲しい:

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 に答える