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