Encuentra la publicación original en mi blog personal
En la publicación anterior comprendimos los principios teóricos del paradigma de POO, llego el momento de ponerlo en práctica, hoy nos concentraremos en el pilar del encapsulamiento y haremos uso de mi lenguaje favorito que es python 🐍.
Herramientas que necesitas
- Un editor de código o IDE (Haré uso de visual studio code)
- Contar con Python instalado en tu computador
- En caso de no tener instalado Python, puedes hacer uso de replit.com (no necesitas instalar nada ;) )
Encapsulamiento con Python
El encapsulamiento es un mecanismo que permite ocultar los detalles de implementación de un objeto y exponer solo una interfaz pública para interactuar con él. En Python, se utiliza el prefijo de doble guion bajo para marcar un atributo o método como privado y que solo pueda ser accedido desde dentro de la clase.
👀 Observa el siguiente código:
class carro:
def __init__(self, marca, modelo, precio):
self.__marca = marca
self.__modelo = modelo
self.__precio = precio
def get_precio(self):
return self.__precio
En este ejemplo, la clase carro tiene tres atributos:
- Marca
- Modelo
- Precio
Todos los atributos anteriores están marcados como privados gracias a la utilización del doble guion bajo al principio, por lo que no pueden ser accedidos directamente desde fuera de la clase.
Entonces, ¿cómo puedo emplearlos?, bueno para el caso que desees saber el precio del vehículo se ha definido el método get_precio() que devuelve ese valor. De esta manera, se protege el atributo precio y se evita que se modifique accidentalmente desde fuera de la clase.
¡Pongámoslo a prueba! 🔥
-
Crearemos un automóvil mustang instanciando nuestra clase Carro
class Carro: def __init__(self, marca, modelo, precio): self.__marca = marca self.__modelo = modelo self.__precio = precio def get_precio(self): return self.__precio mustang = Carro("Ford", "Mustang", 50000)
-
Luego probaremos acceder al precio con nuestro método
def get_precio(self): return self.__precio mustang = Carro("Ford", "Mustang", 50000) print(coche.get_precio())
En consola debe salir el valor de 5000
-
En caso de que tengas dudas prueba acceder al atributo directamente
print(coche.__precio)
Te debe generar el siguiente error AttributeError: 'Carro' object has no attribute '__precio, El cual básicamente nos dice que no existe ese atributo, eso debido a que es PRIVADO 😎.
🎉 ¡Muchas felicidades acabas de aplicar el primer pilar de la programación orientada a objetos, el encapsulamiento!
En nuestro próximo artículo aprenderemos sobre la herencia con Python.
🤓 Reto
Crea tu propia clase del tema que prefieras, con sus respectivos atributos privados e incluso en otro lenguaje de programación y déjalo en comentarios.
Top comments (0)