id de objetos
Milton Galo Patricio Inostroza Aguilera
minoztro en gmail.com
Mie Abr 30 05:16:12 CEST 2008
El día 29 de abril de 2008 19:10, Chema Cortes <py en ch3m4.org> escribió:
> El Tuesday 29 April 2008 23:04:15 Milton Galo Patricio Inostroza Aguilera
> escribió:
>
> > Hola:
> >
> > Se necesito en mi aplicaci´on poder marcar cada objeto del tipo [],
> > {}, () con un id ´unico en mi programa.
> >
> > Leyendo la documentacion me encontre con la funcion id() la cual
> > retorna un identificador que es la direccion de memoria que utiliza
> > este objeto.
> >
> > Las preguntas son:
> >
> > 1.- sin tomar en cuenta los strings, int, long, etc, cual es la
> > probabilidad que un id se repita para distintas tuplas por ejemplo?
>
> En principio, sólo puedes estar seguro de que los objetos que están
> referenciados vayan a tener un id único. En cuanto el recolector de basura
> libere la memoria, es muy probable que se vuelvan a reutilizar los mismos
> ids.
>
>
>
> > 2.- es posible modificar la declaracion de estos objetos para
> > incluirles un identificador ´unico...por lo que se estas son clases
> > cpython...pero me seria interesante ver como son construidas, en donde
> > debo buscar?
>
> Se me ocurre un código "fast&dirty":
>
> class UID(object):
> def __init__(self,*args,**kw):
> from uuid import uuid4
> self.__uid=uuid4()
> super(UID,self).__init__(*args,**kw)
> def _getUID(self):
> return self.__uid
>
> Se podría usar así:
>
> class TuplaUID(tuple,UID):
> pass
>
> t=TuplaUID( (1,2,3,4,5) )
> print t._getUID()
Esa es la idea, pero como puedo hacer eso mismo para el tipo de datos
tuple??...es decir derechamente hacer un hacking o algo en python para
que los objetos obtengan ese atributo id unico en el sistema??...se
que lo que estoy planteando es totalmente anti-pythonico si se pudiera
decir de alguna forma, pero realmente lo necesito para lo que estamos
construyendo {es algo para la academia}
>
> Se garantiza que ningún UUID generado se repetirá hasta pasado el año 3603,
> siempre que no se haya sobrepasado la velocidad de generación de 10 millones
> de uuids por segundo en la misma máquina.
Excelente!!!, alguien me podria ayudar a ver la implementacion de
tuple, list y dict...que al parecer estan implementados en c si es que
no me equivoco, gracias
>
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>
--
Milton Inostroza Aguilera
------------ 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