Sobes.tech
Junior — Middle

¿Cómo se logra en Python la ocultación de la implementación interna de un objeto y la ocultación de datos del acceso externo?

sobes.tech AI

Respuesta de la IA

En Python, la ocultación de la implementación interna del objeto y los datos se logra mediante convenciones y mecanismos de encapsulación:

  • Un guion bajo (_var) — indica que el atributo o método está destinado para uso interno (protegido), pero técnicamente accesible desde fuera.
  • Doble guion bajo (__var) — conduce a name mangling (alteración del nombre), lo que dificulta el acceso al atributo desde fuera, por ejemplo, __var se convierte en _ClassName__var. Esto sirve para prevenir sobrescrituras accidentales y ocultar datos.

Ejemplo:

class MyClass:
    def __init__(self):
        self.public = "accesible para todos"
        self._protected = "para uso interno"
        self.__private = "oculto del acceso externo"

obj = MyClass()
print(obj.public)          # accesible
print(obj._protected)      # accesible, pero no recomendado
print(obj._MyClass__private)  # acceso al atributo "privado" mediante name mangling

De esta forma, en Python no existe un acceso privado estricto, pero hay convenciones y mecanismos que permiten ocultar datos del acceso directo desde fuera.