__new__ vs __init__

Luis Rodrigo Gallardo Cruz rodrigo en nul-unu.com
Mie Nov 14 16:19:44 CET 2007


On Wed, Nov 14, 2007 at 03:58:20PM +0100, tny wrote:
> Sé que __new__ es llamado antes de que se cree el objeto, y es el
> encargado de crearlo y devolverlo.
> 
> Sé que __init__ es llamado después de __new__ para inicializarlo.
 
> ¿Cuándo se debería emplear __init__ y cuando __new__?

Usa __new__ cuando la creación del objeto no puede hacerse según las
reglas normales de python. Por ejemplo, una forma (un poco fea en mi
opinión) de implementar el patrón 'singleton' es que el __new__ de la
clase, en vez de crear un objeto, regrese la instancia única.

En general, usar __new__ es mágia. Casi siempre es mejor evitarlo.
------------ próxima parte ------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: <http://mail.python.org/pipermail/python-es/attachments/20071114/2d3f9a50/attachment.pgp>
------------ próxima parte ------------
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes


Más información sobre la lista de distribución Python-es