Gestión de acceso a datos: atributos privados

Programación orientada a objetos en Python

Alex Yarosh

Content Quality Analyst @ DataCamp

Todos los datos de clase son públicos

somos todos adultos aquí

Programación orientada a objetos en Python

Restringir acceso

  • Convenciones de nombres
  • Usa @property para personalizar acceso
  • Sobrescribir __getattr__() y __setattr__()
Programación orientada a objetos en Python

Convención de nombres: atributos internos

obj._att_name, obj._method_name()

  • Comienza con un solo _ → "interno"
  • No es parte de la API pública
  • Como usuario de clase: "no toques esto"
  • Como desarrollador de clase: usar para detalles de implementación, funciones auxiliares..

df._is_mixed_type , datetime._ymd2ord()

Programación orientada a objetos en Python

Convención de nombres: atributos pseudoprivados

obj.__attr_name , obj.__method_name()

  • Comienza pero no termina con __ → "privado"
  • No se hereda
  • Desfiguración de nombres: obj.__attr_name se interpreta como obj._MyClass__attr_name
  • Usado para evitar conflictos de nombres en clases heredadas

 

Los __ al inicio y al final se usan solo para métodos integrados de Python (__init__(),__repr__())!

Programación orientada a objetos en Python

¡Vamos a practicar!

Programación orientada a objetos en Python

Preparing Video For Download...