macaronikazoo <[EMAIL PROTECTED]> writes: > i'm having a hell of a time getting this to work. basically I want to > be able to instantiate an object using either a list, or a string, but > the class inherits from list. > > if the class is instantiated with a string, then run a method over it > to tokenize it in a meaningful way. > > so how come this doesn't work??? if I do this: > > a=TMP( 'some string' ) > > it does nothing more than list('some string') and seems to be ignoring > the custom __new__ method. > > > > def convertDataToList( data ): return [1,2,3] > class TMP(list): > def __new__( cls, data ): > if isinstance(data, basestring): > new = convertDataToList( data ) > return list.__new__( cls, new ) > > if isinstance(data, list): > return list.__new__( cls, data )
A list is mutable, its initialisation is done in __init__() not __new__(). There was a recent post about this (in the last couple of weeks). -- Arnaud -- http://mail.python.org/mailman/listinfo/python-list