this question has answer here:
- how override [] operator? 3 answers
how can implement customized list can override implementation of list[a:b]
?
thanks in advance!
implement __getitem__
hook; in case of slice slice
object passed in.
a simple version be:
def __getitem__(self, index): if isinstance(index, slice): return [self[i] in range(*slice.indices(len(self)))] return self._internal_sequence[index]
note slice assignment , slice deletion must implement __setitem__
, __delitem__
hooks.
when overriding existing container types, you'll have handle __getslice__
method; deprecated python 2 types still implement it. again, there corresponding __setslice__
, __delslice__
hooks slice assignment , deletion too.
Comments
Post a Comment