On 02/12/2015 04:55 PM, Guido van Rossum wrote: > On Thu, Feb 12, 2015 at 4:36 PM, Ethan Furman <et...@stoneleaf.us > <mailto:et...@stoneleaf.us>> wrote: > > I suspect the last big hurdle to making built-in data structures nicely > subclassable is the insistence of such types to > return new instances as the base class instead of the derived class. > > In case that wasn't clear ;) > > --> class MyInt(int): > ... def __repr__(self): > ... return 'MyInt(%d)' % self > ... > --> m = MyInt(42) > --> m > MyInt(42) > --> m + 1 > 43 > --> type(m+1) > <class 'int'> > > Besides the work it would take to rectify this, I imagine the biggest > hurdle would be the performance hit in always > looking up the type of self. Has anyone done any preliminary > benchmarking? Are there other concerns? > > > Actually, the problem is that the base class (e.g. int) doesn't know how to > construct an instance of the subclass -- > there is no reason (in general) why the signature of a subclass constructor > should match the base class constructor, and > it often doesn't. > > So this is pretty much a no-go. It's not unique to Python -- it's a basic > issue with OO.
Thank you. -- ~Ethan~
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com