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