explicit call to __init__(self) in subclass needed?
Bruno Desthuilliers
bruno.42.desthuilliers at websiteburo.invalid
Fri Sep 18 04:41:07 EDT 2009
Ethan Furman a écrit :
> Andrew MacKeith wrote:
>> I create a class like this in Python-2.6
>>
>> >>> class Y(str):
>> ... def __init__(self, s):
>> ... pass
>> ...
>> >>> y = Y('giraffe')
>> >>> y
>> 'giraffe'
>> >>>
>>
>> How does the base class (str) get initialized with the value passed to
>> Y.__init__() ?
>>
>> Is this behavior specific to the str type, or do base classes not need
>> to be explicitly initialized?
>>
>> Andrew
>
> All the immutable base types (I *think*), use __new__ for object
> creation, not __init__.
All types use __new__ for object *creation*. __init__ is for object
initialization (which indeed happens in the __new__ method for immutable
types, since the initializer works my mutating the newly created
instance) !-)
> ~Ethan~
More information about the Python-list
mailing list