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,
__varse 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.