Junior — Middle
Comment en Python la dissimulation de l'implémentation interne d'un objet et la dissimulation des données de l'accès externe sont-elles réalisées?
sobes.tech IA
Réponse de l'IA
En Python, la dissimulation 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.