Encapsulamiento - atributos privados - Curso desde cero Programación Orientada a Objetos Python - Capítulo 9


En este capítulo vemos un pequeño ejemplo sobre encapsulación en las clases.

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.

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.

Código

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()

Este no es el final de este curso. Proximamente un segundo bloque con nuevos capítulos.


Suscríbete a mi canal de YouTube para apoyarme

Si te ha gustado este curso y crees que el trabajo merece la pena, te agradeceré eternamente que te suscribas a mi canal de YouTube para apoyarme y que pueda seguir haciendo cursos gratuitos.

Además, si te encanta la programación, tienes un montón más de cursos gratuitos para ver.

No solo eso, podrás participar enviándome comentarios con tus sugerencias para temas específicos o cursos completos o incluso las dudas que tengas y las intentaré ir resolviendo en los cursos que estén todavía abiertos.


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.