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~
--
http://mail.python.org/mailman/listinfo/python-list