[Python-Dev] subclassing builtin data structures (original) (raw)

Neil Girdhar mistersheik at gmail.com
Fri Feb 13 11:08:14 CET 2015


With Python's cooperative inheritance, I think you want to do everything through one constructor sending keyword arguments up the chain. The keyword arguments are popped off as needed. With this setup I don't think you need "overloaded constructors".

Best, Neil

On Fri, Feb 13, 2015 at 4:44 AM, Jonas Wielicki <j.wielicki at sotecware.net> wrote:

If I may humbly chime in this, with a hint...

On 13.02.2015 05:01, Guido van Rossum wrote: > On Thu, Feb 12, 2015 at 7:41 PM, Ethan Furman <ethan at stoneleaf.us> wrote: >> [snip] >> 2) always use the type of self when creating new instances >> >> pros: >> - subclasses automatically maintain type >> - much less code in the simple cases [1] >> >> cons: >> - if constructor signatures change, must override all methods which >> create new objects >> >> Unless there are powerful reasons against number 2 (such as performance, >> or the effort to affect the change), it sure >> seems like the nicer way to go. >> >> So back to my original question: what other concerns are there, and has >> anybody done any benchmarks? >> > > Con for #2 is a showstopper. Forget about it. I would like to mention that there is another language out there which knows about virtual constructors (virtual like in virtual methods, with signature match requirements and such), which is FreePascal (and Delphi, and I think original Object Pascal too). It is actually a feature I liked about these languages, compared to C++03 and others, that constructors could be virtual and that classes were first-class citizens. Of course, Python cannot check the signature at compile time. But I think as long as it is documented, there should be no reason not to allow and support it. It really is analogous to other methods which need to have a matching signature. just my two cents, jwi


Python-Dev mailing list Python-Dev at python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/mistersheik%40gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20150213/c5c4dd7a/attachment.html>



More information about the Python-Dev mailing list