id de objetos
Milton Galo Patricio Inostroza Aguilera
minoztro en gmail.com
Mie Abr 30 15:00:54 CEST 2008
El día 29 de abril de 2008 23:16, Milton Galo Patricio Inostroza
Aguilera <minoztro en gmail.com> escribió:
> 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}
en realidad debiera modificar la implementacion de object? o no?
>
>
> >
> > 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
>
--
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