Curso de POO en Python desde cero

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.

Programación Fácil YouTube

Suscríbete

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.