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

Alexander Belopolsky alexander.belopolsky at gmail.com
Fri Feb 13 17:55:48 CET 2015


On Thu, Feb 12, 2015 at 11:01 PM, Guido van Rossum <guido at python.org> wrote:

2) always use the type of self when creating new instances .. cons: - if constructor signatures change, must override all methods which create new objects

Con for #2 is a showstopper. Forget about it.

Sorry if I am missing something obvious, but I still don't understand why the same logic does not apply to class methods that create new instances:

from datetime import * date.today() datetime.date(2015, 2, 13) datetime.today() datetime.datetime(2015, 2, 13, 11, 37, 23, 678680) class Date(date): ... pass ... Date.today() Date(2015, 2, 13)

(I actually find datetime.today() returning a datetime rather than a date a questionable design decision, but probably the datetime type should not have been a subclass of the date to begin with.)

Are there any date subclasses in the wild that don't accept year, month, day in the constructor? If you create such a class, wouldn't you want to override add and friends anyways? We already know that you will have to override today(). -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://mail.python.org/pipermail/python-dev/attachments/20150213/56cd2127/attachment.html>



More information about the Python-Dev mailing list