Ver Mensaje Individual
  #10 (permalink)  
Antiguo 20/03/2013, 10:13
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Set/Get con properties no funciona, aparecen duplicados o algo raro los ca

Eso fue un error mio.

Debes de heredar de object para poder usar @property de manera correcta.

Código Python:
Ver original
  1. class Sujeto(object):
  2.     def __init__(self, ip, dominios):
  3.         self.__dominios = dominios
  4.         self.__ip=ip
  5.  
  6.     def __str__(self):
  7.         return "IP=>%s DOMINIOS=> %s" % (self.__ip, self.__dominios)
  8.  
  9.     @property
  10.     def ip(self):
  11.         return self.__ip
  12.  
  13.     @ip.setter
  14.     def ip(self, valor):
  15.         self.__ip = valor
  16.  
  17.     @property
  18.     def dominios(self):
  19.         return self.__dominios
  20.  
  21.     @dominios.setter
  22.     def dominios(self, valor):
  23.         self.__dominios = valor
  24.  
  25.  
  26. obj1 = Sujeto("192.13.12.11", "gmal.com:gmail.es:gmail.net")
  27.  
  28. diccionario = {}
  29.  
  30. diccionario[obj1.ip] = obj1
  31.  
  32. a = diccionario.get("192.13.12.11")
  33.  
  34. print a
  35.  
  36. a.dominios="Soy un dominio nuevo"
  37.  
  38. diccionario[a.ip] = a
  39.  
  40. b= diccionario.get("192.13.12.11")
  41.  
  42. print b

En cuanto a lo que mencionas de agregar atributos es una propiedad de cualquier objeto en python (a menos que usen __slots__).

Ejemplo:
Código MySQL:
Ver original
  1. def f(x):
  2.     print x, f.a
  3. f.a = 2
  4. f(10)