explicit call to __init__(self) in subclass needed?
Ethan Furman
ethan at stoneleaf.us
Fri Sep 18 09:26:31 EDT 2009
Bruno Desthuilliers wrote:
> 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~
Thanks for the clarification, Bruno!
~Ethan~
More information about the Python-list
mailing list