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

Reply via email to