explicit call to __init__(self) in subclass needed?

Ethan Furman ethan at stoneleaf.us
Thu Sep 17 15:41:51 EDT 2009


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__.

~Ethan~



More information about the Python-list mailing list