Help me override append function of list object
jeremito
jeremit0 at gmail.com
Tue Jan 30 10:55:30 EST 2007
On Jan 30, 10:47 am, Peter Otten <__pete... at web.de> wrote:
> jeremito wrote:
> > I have created a class that inherits from the list object. I want to
> > override the append function to allow my class to append several
> > copies at the same time with one function call. I want to do
> > something like:
>
> > import copy
>
> > class MyList(list):
> > __init__(self):
> > pass
>
> > def append(self, object, n=1):
> > for i in xrange(n):
> > self.append(copy.copy(object))
>
> > Now I know this doesn't work because I overwrite append, but want the
> > original functionality of the list object. Can someone help me?Use list.append(self, obj) or super(MyList, self).append(obj), e. g.:
>
> >>> import copy
> >>> class List(list):... def append(self, obj, n=1):
> ... for i in xrange(n):
> ... super(List, self).append(copy.copy(obj))
> ...>>> items = List()
> >>> items.append(42, 3)
> >>> items[42, 42, 42]
>
> Peter
Thank you so much. I'm glad it is so easy.
Jeremy
More information about the Python-list
mailing list