適切なときにクラスをスライスとして表現するにはどうすればよいですか?スライスのように振舞うオブジェクトを作成する
これは動作しませんでした:
class MyThing(object):
def __init__(self, start, stop, otherstuff):
self.start = start
self.stop = stop
self.otherstuff = otherstuff
def __index__(self):
return slice(self.start, self.stop)
予想される出力:
>>> thing = MyThing(1, 3, 'potato')
>>> 'hello world'[thing]
'el'
実際の出力:
slice
から継承
TypeError: __index__ returned non-(int,long) (type slice)
はどちらか動作しません。
を必要とします'__index __()'は 'slice'の代わりに' int'を返すことを強調しており、単一の整数を返すとうまく動作するようです。 –
なぜ、これをやりたいのですか? – MisterMiyagi
私はスライスと同じように動作する豊かなスライスを作っていますが、いくつかの拡張機能も備えています。 – wim