Fhernd icon

extender_propiedad_subclase.py

Fhernd | PRO | 12/17/18 05:04:56 PM UTC | 0 ⭐ | 2890 👁️ | Never ⏰ | []
Python |

960 B

|

None

|

0 👍

/

0 👎

class Persona:
    def __init__(self, nombre):
        self.nombre = nombre
 
    @property
    def nombre(self):
        return self._nombre
 
    @nombre.setter
    def nombre(self, valor):
        if not isinstance(valor, str):
            raise TypeError('Se requiere una cadena de caracteres.')
 
        self._nombre = valor
 
    @nombre.deleter
    def nombre(self):
        raise AttributeError('No se puede borrar este atributo.')
 
 
class SubPersona(Persona):
    @property
    def nombre(self):
        print('Recuperando nombre')
        return super().nombre
 
    @nombre.setter
    def nombre(self, valor):
        print('Asignando nuevo nombre')
        super(SubPersona, SubPersona).nombre.__set__(self, valor)
 
    @nombre.deleter
    def nombre(self):
        print('Borrando atributo nombre')
        super(SubPersona, SubPersona).nombre.__delete__(self)
 
 
p = SubPersona('Einstein')
print(p.nombre)
# Produce error:
#p.nombre = 13

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎