KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I am interested in using the python list object, but with slightly altered functionality. In particular, I would like the list to be 1-indexed instead of 0-indexed. E.g.: >> mylist = MyList() >> mylist.extend([1,2,3,4,5]) >> print mylist[1] output should be: 1 But when I changed the __getitem__() and __setitem__() methods to do this, I was getting a RuntimeError: maximum recursion depth exceeded error. I tinkered around with these methods a lot but this is basically what I had in there: class MyList(list): def __getitem__(self, key): return self[key-1] def __setitem__(self, key, item): self[key-1] = item I guess the problem is that self[key-1] is itself calling the same method it's defining. If so, how do I make it use the list() method instead of the MyList() method? I tried using super[key-1] instead of self[key-1] but that resulted in the complaint TypeError: 'type' object is unsubscriptable Any ideas? Also if you could point me at a good tutorial for this that'd be great! Thanks!
Tags (comma-separated)
Save Edits
Cancel