On Fri, Apr 18, 2008 at 12:08 PM, <[EMAIL PROTECTED]> wrote: > Any guidelines on when to use __new__ vs. __init__ when sub-classing?
Use __new__ when you need to control the creation of a new instance. Use __init__ when you need to control initialization of a new instance. __new__ is the first step of instance creation. It's called first, and is responsible for returning a new instance of your class. In contrast, __init__ doesn't return anything; it's only responsible for initializing the instance after it's been created. In general, you shouldn't need to override __new__ unless you're subclassing an immutable type like str, int, unicode or tuple. Some references: The description of new style classes goes into some depth about how instance creation works, including examples of overriding __new__ and __init__. http://www.python.org/download/releases/2.2/descrintro/ The reference manual has a section on class customization, but I don't think it goes into enough depth to really answer your question: http://docs.python.org/ref/customization.html -- Jerry _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor