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 -- http://mail.python.org/mailman/listinfo/python-list