Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

01D

13H

00M

01S

4

PROPIEDADES, GETTERS, SETTERS Y ENCAPSULAMEINTO

Este sin duda resultó ser un tema complejo en el cual faltó especificar algunos conceptos y les comparto algo sobre ellos:

Se denomina **Encapsulamiento **al ocultamiento del estado, es decir, de los datos miembro de un objeto de manera que solo se pueda cambiar mediante las operaciones definidas para ese objeto.

Hablamos de ocultar los datos de atributos o métodos, más específicamente de protegerlos para que solo puedan ser cambiados mediante “operaciones definidas” para ello. Esto nos asegura por ejemplo que “no podremos modificar un atributo si no es a través de un método que hayamos creado específicamente para ello” y aquí es donde nacen los famosos** “Getter, Setter, Deleter”**

**Atributos protegidos en python “_” **

classusuario(object):def__init__(self, nombre, clave):
        self.nombre = nombre
        self._clave = clave
        
Usuario1 = usuario ("Roberto", "qwerty")
print (Usuario1.nombre, Usuario1._clave)```

El atributo clave esta precedido por un guión bajo, lo que indica que es un atributo protegido. Lo cual** establece que solo puede ser accedido por esa clase y sus sub-clases**, es decir, aquellas que hereden de la clase padre.

**Atributos privados en Python (“__”)**
En el caso de un atributo privado estamos indicando que este solo podrá ser accedido o modificado si se especifica la clase precedida por un guión bajo seguida del atributo precedido por doble guión bajo.

El código quedaría así:



class usuario (object):
def init(self, nombre, clave):
self.nombre = nombre
self.__clave = clave

Usuario1 = usuario (“Roberto”, “qwerty”)
print (Usuario1.nombre, Usuario1._usuario__clave)```

@Property en python
La función integrada property() nos permitirá interceptar la escritura, lectura, borrado de los atributos y ademas nos permiten incorporar una documentación sobre los mismos.

Si nosotros no pasamos alguno de los parámetros su valor por defecto será None.

Getter: Se encargará de interceptar la lectura del atributo. (get = obtener)
**Setter : **Se encarga de interceptar cuando se escriba. (set = definir o escribir)
**Deleter : **Se encarga de interceptar cuando es borrado. (delete = borrar)
doc : Recibirá una cadena para documentar el atributo. (doc = documentación)

Espero le sirva esto a más de uno.
Fuente: pythones.net

Escribe tu comentario
+ 2