On 02/12/2015 05:46 PM, MRAB wrote: > On 2015-02-13 00:55, Guido van Rossum wrote: >> On Thu, Feb 12, 2015 at 4:36 PM, Ethan Furman <ethan at stoneleaf.us >> <mailto:ethan at 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. >> > Really? What I was asking about, and Guido responded to, was not having to specifically override __add__, __mul__, __sub__, and all the others; if we do override them then there is no problem. -- ~Ethan~ -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: OpenPGP digital signature URL: <http://mail.python.org/pipermail/python-dev/attachments/20150212/d7996d1e/attachment.sig>
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4