Detener la creacion de un objeto

Juan Ignacio Rodriguez de Leon jileon en parcan.es
Mie Abr 5 10:13:21 CEST 2006


Alvaro wrote:

> como detengo la creación de un objeto.
> por ejemplo
> 
> class Suma:
>     def __init__(self,derecha,izquierda):
>         ......
>         ......
> 
> lo que yo quiero es que si yo escribo
> 
> X= Suma(1,2)
> 
> X me almacene el objeto suma. pero si yo escribo
> 
> X= Suma(1,-1)
> 
> X no me almacene nada, sea que no se cree la instancia de la clase.
> 
> también me interesaría saber como logro hacer para que no solo no se  
> cree la clase, sino que X almacene 0

¿No puedes usar un método _factoría_? Algo así:

 > class Suma:
 >     def __init__(self,derecha,izquierda):
 >         if izquierda < 0:
 >             raise ValueError('Nop')
 >         ......
 >
 > def mkSuma(derecha, izquierda):
 >     try:
 >         result = Suma(derecha, izquierda)
 >     except ValueError:
 >         result = 0
 >     return result

Un saludo




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