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.
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor