> On Feb 12, 2015, at 18:40, Chris Angelico <[email protected]> wrote:
>
> On Fri, Feb 13, 2015 at 12:46 PM, MRAB <[email protected]> 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 <[email protected]> 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
> [email protected]
> 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
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com