A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2015-February/138195.html below:

[Python-Dev] subclassing builtin data structures

[Python-Dev] subclassing builtin data structuresGuido van Rossum guido at python.org
Fri Feb 13 05:01:19 CET 2015
On Thu, Feb 12, 2015 at 7:41 PM, Ethan Furman <ethan at stoneleaf.us> wrote:

> On 02/12/2015 06:39 PM, Alexander Belopolsky wrote:
>
> > In my view, a constructor is no different from any other method.  If the
> designers of the subclass decided to change the
> > signature in an incompatible way, they should either override all
> methods that create new objects or live with tracebacks.
>
> > On the other hand, if all I want in my Date class is a better __format__
> method, I am forced to override all operators
> > or have my objects silently degrade [...]
>
> So there are basically two choices:
>
> 1) always use the type of the most-base class when creating new instances
>
>    pros:
>      - easy
>      - speedy code
>      - no possible tracebacks on new object instantiation
>
>    cons:
>      - a subclass that needs/wants to maintain itself must override all
>        methods that create new instances, even if the only change is to
>        the type of object returned
>
> 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.

-- 
--Guido van Rossum (python.org/~guido)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-dev/attachments/20150212/0a368e51/attachment.html>
More information about the Python-Dev mailing list

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