On Sat, Mar 2, 2013 at 10:22 AM, Ian Kelly <ian.g.ke...@gmail.com> wrote: > class Vector(list): > def __new__(cls, *args): > return super(Vector, cls).__new__(cls, args) > def __init__(self, *args): > super(Vector, self).__init__(args) > > The __new__ method here will receive the args in the style that you > want, and then pass them up the inheritance chain to the superclass > constructor, which will then just do the right thing. The __init__ > method is also overridden to match the modified argspec. The > super().__init__() call is included for completeness; AFAIK it doesn't > actually do anything.
I retract that. On further testing, it is actually the __init__ method that initializes the list contents, not the __new__ method. So this is all you need: class Vector(list): def __init__(self, *args): super(Vector, self).__init__(args) -- http://mail.python.org/mailman/listinfo/python-list