On Fri, Feb 13, 2015 at 10:02 AM, Alexander Belopolsky < alexander.belopol...@gmail.com> wrote:
> > On Fri, Feb 13, 2015 at 12:35 PM, Guido van Rossum <gu...@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)
_______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com