Eso fue un error mio.
Debes de heredar de object para poder usar @property de manera correcta.
Código Python:
Ver originalclass Sujeto(object):
def __init__(self, ip, dominios):
self.__dominios = dominios
self.__ip=ip
def __str__(self):
return "IP=>%s DOMINIOS=> %s" % (self.__ip, self.__dominios)
@property
def ip(self):
return self.__ip
@ip.setter
def ip(self, valor):
self.__ip = valor
@property
def dominios(self):
return self.__dominios
@dominios.setter
def dominios(self, valor):
self.__dominios = valor
obj1 = Sujeto("192.13.12.11", "gmal.com:gmail.es:gmail.net")
diccionario = {}
diccionario[obj1.ip] = obj1
a = diccionario.get("192.13.12.11")
print a
a.dominios="Soy un dominio nuevo"
diccionario[a.ip] = a
b= diccionario.get("192.13.12.11")
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: