How to use "__new__"?

Steven Bethard steven.bethard at gmail.com
Tue Mar 29 20:12:41 EST 2005


could ildg wrote:
> As there is already __init__, why need a __new__?
> What can __new__ give us while __init__ can't?
> In what situations we should use __new__?
> And in what situations we must use __new__?
> Can __new__ take the place of __init__?

I believe the current documentation will be updated when 2.4.1 is 
released, but documentation for __new__ is now available at:

http://www.python.org/dev/doc/devel/ref/customization.html

In short, you could use __new__ in place of __init__, but it's probably 
only useful to do so if you need to change an instance *before* it's 
created.  In general, if you aren't subclassing an immutable type, and 
you're not sure that you need __new__, you probably don't.

STeVe



More information about the Python-list mailing list