> On Feb 12, 2015, at 18:40, Chris Angelico <ros...@gmail.com> wrote:
> 
> On Fri, Feb 13, 2015 at 12:46 PM, MRAB <pyt...@mrabarnett.plus.com> wrote:
>>>>> class BaseInt:
>> ...     def __init__(self, value):
>> ...         self._value = value
>> ...     def __add__(self, other):
>> ...         return type(self)(self._value + other)
> 
>> On Fri, Feb 13, 2015 at 11:55 AM, Guido van Rossum <gu...@python.org> wrote:
>> ... there is no reason (in general) why
>> the signature of a subclass constructor should match the base class
>> constructor, and it often doesn't.
> 
> You're requiring that any subclass of BaseInt be instantiable with one
> argument, namely its value. That's requiring that the signature of the
> subclass constructor match the base class constructor.
> 
> ChrisA
> _______________________________________________
> 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/wizzat%40gmail.com

No, it seems like he's asking that the type return a new object of the same 
type instead of one of the superclass. In effect, making the Date class call 
type(self)(*args) instead of datetime.date(*args). He seems completely willing 
to accept the consequences of changing the constructor (namely that he will 
have to override all the methods that call the constructor).

It seems like good object oriented design to me.

-Mark
_______________________________________________
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

Reply via email to