[Python-es] __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 ------------
Se ha borrado un mensaje que no está en formato texto plano...
Nombre     : no disponible
Tipo       : application/pgp-signature
Tamaño     : 189 bytes
Descripción: Digital signature
Url        : /archivos/python-es/attachments/20071114/2d3f9a50/attachment.pgp


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