Ver Mensaje Individual
  #3 (permalink)  
Antiguo 26/02/2015, 11:36
SARGE553413
 
Fecha de Ingreso: febrero-2014
Mensajes: 55
Antigüedad: 10 años, 2 meses
Puntos: 3
Respuesta: Problema: properties y clases que extienden de object

No busco modificar un atributo de solo lectura lo que quiero es:
1 - Tener un atributo de tipo lista en una clase.

2 - Que sea posible insertar o eliminar datos de esa lista, pero que no se pueda asignar una nueva lista a esa variable.

Por ejemplo, si simplemente pongo en una clase A una lista 'list' pública de solo lectura (es decir property con solo get), se podría hacer:
Código:
a = A()
a.list.append(20)                  #Esto es lo que quiero que se pueda hacer.
a.list = [i for i in range(10)]  #Esto es lo que no quiero que se pueda hacer.
Por otro lado, no veo por qué estoy mezclando old-style y new-style classes, si estoy en python 2.7 y decido que voy a usar new-style classes todas extienden de object, yno veo que hay mezcla de old-style y new-style.
Si quiero que sean old-style, no extienden de object y lo mismo.

Con respecto a mezclar mutabilidad y properties, no se a que te refieres exactamente, lo mismo que quiero hacer se podría hacer con un getter, lo quiero hacer con una property por "sintax sugar". Pero desde luego sabiendo que una propiedad puede ser de solo lectura o de lectura y escritura, el concepto de mutabilidad está bastante relacionado con las properties entiendo.

Respecto a python 3, sé que no existen old-style classes pero precisamente es en python 3 donde las propiedades deberían funcionar 100%, en ese caso lo que quiero hacer se debería poder hacer en python 3 incluso mejor que en python 2.x, pero esa es una de las cosas que pregunto.

Última edición por SARGE553413; 26/02/2015 a las 11:50