El encapsulamiento y los atributos privados con Python
Capítulo 9: Encapsulamiento - atributos privados - POO Python
En este capítulo vemos un pequeño ejemplo sobre encapsulación en las clases de Python.
Voy a explicar este tema con un ejemplo muy simple, la verdad es que no es muy complicado y para entender el concepto no hace falta complicarse demasiado la vida.
Si no llevas mucho en programación, puede que te cueste entenderlo un poco más. Si tienes dudas, déjame un comentario.
¿Qué es el encapsulamiento?
Lo que se pretende básicamente con el encapsulamiento es que se puedan hacer inaccesibles los atributos o métodos para protegerlos del exterior y que solo se puedan modificar con operaciones predefinidas.
Tenemos esta clase con un atributo nuevo, la contraseña. Bien, queremos que en el momento en el que el usuario crease su cuenta, pudiese especificar una contraseña.
En ese formulario de creación de usuario, el propio usuario mandaría a instanciar su objeto usuario y puesto que tenemos el atributo password en el __init__
, se le permite inicialmente hacer esto.
Para proteger el atributo de contraseña llamado password
solo añádele una doble barra como prefijo en el nombre, tal y como está en el código.
De este modo, a los otros atributos se puede acceder, pero a este no. Puedes hacer lo mismo con el resto de atributos sin problemas.
Pero debes tener en cuenta una cosa muy importante. Al especificar atributos de esta forma, solo podemos acceder a ellos dentro de la propia clase, por lo que la clase deberá tener dentro todos los métodos que necesitemos para utilizar esos atributos, porqué desde fuera no podremos interactuar con dichos atributos. En el vídeo tienes un ejemplo.< /p>
class Usuarios:
def __init__(self, nid, alias, nombre, apellidos, password):
self.nid = nid
self.alias = alias
self.nombre = nombre
self.apellidos = apellidos
self.__password = password
def muestra_datos(self):
print("El nombre y los apellidos del usuario son: " + self.nombre, self.apellidos)
print("El ID de usuario es: " + self.nid + ".")
print("El alias del usuario es: " + self.alias + ".")
print("La contraseña es: " + self.__password)
usuario1 = Usuarios("002", "PdePython", "Paula", "Vega García", "h$6pOcN9YDub")
usuario1.muestra_datos()
Si quieres seguir aprendiendo Python, no te pierdas ninguno de los cursos que tengo.
Comentarios
Si te quedan dudas sobre el temario, sobre Python, o cualquier otra cosa relacionada o simplemente quieres agradecer, aquí tienes tu sitio para dejar tu granito de arena. Gracias por tus comentarios y por darle vida a este sitio web.