[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