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

Guido van Rossum guido at python.org
Fri Feb 13 19:11:56 CET 2015


On Fri, Feb 13, 2015 at 10:02 AM, Alexander Belopolsky < alexander.belopolsky at gmail.com> wrote:

On Fri, Feb 13, 2015 at 12:35 PM, Guido van Rossum <guido at python.org> wrote:

IIUC you're proposing that the base class should try to construct an instance of the subclass by calling the type with an argument, and fail if it doesn't work. But that makes the whole thing brittle in the light of changes to the subclass constructor. Also, what should the argument be? The only answer I can think of is an instance of the base class. No. The arguments should be whatever arguments are appropriate for the baseclass's init or new. In the case of datetime.date that would be year, month, day.

Agreed. (I was thinking of the case that Ethan brought up, which used int as an example.)

Note that the original pure python prototype of the datetime module had date.add and friends call self.class(year, month, day). Unfortunately, it looks like the original sandbox did not survive the the hg conversion, so I cannot provide a link to the relevant history.

FWIW you're wrong when you claim that "a constructor is no different from any other method". Someone else should probably explain this (it's an old argument that's been thoroughly settled).

-- --Guido van Rossum (python.org/~guido) -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20150213/7f65ca67/attachment.html>



More information about the Python-Dev mailing list