Programación Orientada a Objetos con Python | 1.7 - Encapsulación

Javier Cóndor@javiercondor

Al ver el video me pareció raro que haya asignado un valor a "__telefono", y python no haya devuelto error, pero cuando trató de leerlo si salió error. Así que hice la prueba y lo que encontré es que si usas el atributo privado retorna error, pero si previamente asignas valor a un atributo con el mismo nombre que el atributo privado del objeto si lo acepta y lo "crea", pero es distinto al atributo privado declarado en la clase.

Es decir: usuario1 = Usuario("Doe","Run","correo@gmail.com","12345","password") print(usuario1.__telefono) usuario1.__telefono = "67890" => Retorna error porque '__telefono' no existe. print(usuario1.__telefono) print(usuario1.obtener_telefono())

Pero: usuario1 = Usuario("Doe","Run","correo@gmail.com","12345","password")

print(usuario1.__telefono)

usuario1.__telefono = "67890" print(usuario1.__telefono) => retorna "67890" print(usuario1.obtener_telefono()) => retorna "12345"

Lo que me parece al menos no adecuado ya que pienso que puede originar confusiones o errores al programar, debería respetar lo que uno ha definido en la Clase. Para tenerlo presente.


Escribe una respuesta