__new__ vs __init__
Xin
xinxic en gmail.com
Mie Nov 14 17:17:08 CET 2007
Yo lo he tenido que utilitzar.
Antes de saber que existia perdí muchas horas.
La classe que tenia que usar heredaba de "long" i se encargaba de
analizar un flujo de bits (enormes), de forma que podia extraer una
cierta cantidad de bits como si fuera otro flujo. Esto me servia para
analizar dichos datos en trozos.
La idea principal és que si heredas de qualquier tipo de dato
primitivo, esos datos que siempre tienen el mismo id, debe usar-se
__new__
Puedes saber si és un tipo primitivo si mantiene el mismo "id".
>>> i = 5
>>> f = 5.
>>> l = 5L
>>> t = '5'
>>> id(5) == id(i)
True
>>> id(5.) == id(f)
False
>>> id(5L) == id(l)
False
>>> id('5') == id(t)
True
Cachis, ahora el long i el float no me dan el mismo id.
Eso no puede ser !!!
El 14/11/2007, a las 15:58, tny escribió:
> 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.
>
> Yo de momento nunca he necesitado usar __new__ porque para lo que hago
> __init__ me basta.
>
> El caso es que me han comentado que el código que genera tepache
> invita
> a inicializar los widgets en el __new__, y yo considero que debe ir en
> __init__
>
> ¿Cuándo se debería emplear __init__ y cuando __new__?
>
>
>
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
_______________________________________________
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