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~

Attachment: 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

Reply via email to