python bug when subclassing list?

Hamish McKenzie hamish at
Thu Nov 6 20:43:22 CET 2008

I want to write a Vector class and it makes the most sense to just subclass list.  I also want to be able to instantiate a vector using either:

Vector( 1, 2, 3 )
Vector( [1, 2, 3] )

so I have this:

class Vector(list):
      def __new__( cls, *a ):
                  print a
                  return list.__new__(cls, a)
                  print 'broken'
                  return list.__new__(cls, list(a))

doing Vector( 1, 2, 3 ) on this class results in a TypeError - which doesn't seem to get caught by the try block (ie "broken" never gets printed, and it never tries to

I can do pretty much the exact same code but inheriting from tuple instead of list and it works fine.

is this a python bug?  or am I doing something wrong?


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Python-list mailing list