[Tutor] Hiding Superclass Methods
Adam Bark
adam.jtm30 at gmail.com
Mon Oct 11 16:55:10 CEST 2010
On 11/10/10 15:29, Denis Gomes wrote:
> Thank you both for your responses. I do have one other question if I
> use the method both of you describe. How do I go about implementing
> slicing and indexing for an object in python? A list object innately
> has them and that is really why I wanted to use it. I would
> appreciate it if you can point me to something.
> Denis
You can use __getslice__, __setslice__ etc. methods. They're detailed in
the list docstrings. Here's an example of using __getslice__
>>> dir([])
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__',
'__delslice__', '__doc__', '__eq__', '__format__', '__ge__',
'__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__',
'__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__',
'__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
'__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__',
'__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append',
'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> print [].__getslice__.__doc__
x.__getslice__(i, j) <==> x[i:j]
Use of negative indices is not supported.
>>> print [].__setslice__.__doc__
x.__setslice__(i, j, y) <==> x[i:j]=y
Use of negative indices is not supported.
>>> class TestSlice(object):
... def __getslice__(self, i, j):
... print i, j
...
>>> t = TestSlice()
>>> t[2:3]
2 3
HTH,
Adam.
More information about the Tutor
mailing list