[Tutor] Modify inherited methods
Walter Wefft
walterwefft at googlemail.com
Wed Apr 28 18:32:56 CEST 2010
Emile van Sebille wrote:
> On 4/28/2010 3:20 AM Walter Wefft said...
>> spir ☣ wrote:
>>> On Wed, 28 Apr 2010 07:53:06 +0100
>>> Walter Wefft <walterwefft at googlemail.com> wrote:
> <snip>
>>> ===============================
>>> class MyDict0(dict):
>>> pass
>>> class MyDict1(dict):
>>> def __init__(self, *args, **kw):
>>> pass
>>> class MyDict2(dict):
>>> def __init__(self, *args, **kw):
>>> dict.__init__(self, *args, **kw)
>>> ===============================
>>>
>>> d0 = MyDict0(a=1) ; d1 = MyDict1(a=1) ; d2 = MyDict2(a=1)
>>> print d0,d1,d2 # ==> {'a': 1} {} {'a': 1}
>>>
>>
>> You reiterate my point. To say that dict.__init__ can be omitted in a
>> subclass's __init__ with no effect, is not a correct statement.
>>
>
> It wasn't the omitted case that exhibits the difference. When
> sub-classing, any methods omitted defer to the parent's version so the
> init from the dict parent happened.
>
"omitted in a subclass's __init__", ie. a *call* to the superclass's method
More information about the Tutor
mailing list