Asignando un atributo por nombre
Luis Iglesias
luigli en yahoo.es
Mar Dic 23 12:23:14 CET 2003
--- Pablo Barrera González <barrera en gsyc.escet.urjc.es> escribió:
> Hola a todos
>
> Llevo un par de días intentando hacer una cosa que al principio
> pensaba
> que era fácil pero ahora no sé si se puede hacer.
>
> Tengo una serie de instancias que correrán en unos cuantos hilos. Uso
> cerrojos y condiciones para evitar que los datos se modifiquen mal.
> Lo
> que quiero es cambiar los atributos de una clase cerrando el cerrojo
> desde dentro de la clase y no desde el resto del programa, para
> simplificar lo demás. Lo que se me ha ocurrido es definir unos
> métodos
> como estos:
>
> def get(self, name):
> return eval("self.%s")
> def set(self,name, value):
> eval("self.%s = %s", name, value)
>
> El get funciona bien, pero con el set se queja ya que no puedo poner
> el
> igual dentro de la expresión a evaluar por eval.
>
> He estado buscando otras opciones, como conseguir una referencia del
> atributo que quiero cambiar pero no he tenido suerte. ¿Alguna idea?
Echa un vistazo en el documento de novedades en Python 2.2 al punto 2.4
"Acceso a atributos". No es exactamente lo que estás comentando, pero
creo que puede ayudar.
Luis.
___________________________________________________
Yahoo! Messenger - Nueva versión GRATIS
Super Webcam, voz, caritas animadas, y más...
http://messenger.yahoo.es
Más información sobre la lista de distribución Python-es