Why do we nned both - __init__() and __new__()
Steve D'Aprano
steve+python at pearwood.info
Thu Sep 7 08:19:00 EDT 2017
On Thu, 7 Sep 2017 08:57 pm, Andrej Viktorovich wrote:
> Hello
>
> For my understanding both - __init__() and __new__() works like constructors.
> And __new__() looks is closer to constructor. __init__() is more for variable
> initialization. Why I can't just initialize in __init__() ?
Because if your object is immutable, by the time __init__ is called, the object
is already frozen and you cannot initialise it.
Most of the time, just use __init__. You will soon realise when you need
__new__, and then you can worry about it. I've been using Python for two
decades, and I think I can count the number of times I've used __new__ on the
fingers of one hand.
Maybe two hands.
--
Steve
“Cheer up,” they said, “things could be worse.” So I cheered up, and sure
enough, things got worse.
More information about the Python-list
mailing list