Your Web News in One Place

Help Webnuz

Referal links:

Sign up for GreenGeeks web hosting
March 23, 2022 03:15 am GMT

POO - Encapsulamiento

Cuando hablamos de encapsulacin nos referimos generalmente a definir grados o niveles de acceso y modificacin para nuestros mtodos y atributos. En Python especficamente no existe como tal una 'proteccin' real haca los atributos de una clase, ya que estos se pueden acceder de forma pblica simplemente a travs de la instancia. Lo que se hace para evitar que estos atributos sean cambiados es usar convenciones ya definidas por Python que nos permiten HACER SABER que esos atributos pueden ser accedidos solamente por la clase en la que se encuentran o por las clases que heredan de la misma:

self.__body < de esta forma, con dos guiones bajos, especificamos que nicamente vamos a poder acceder a este atributo estando dentro de la clase en la que se declar,lo que se conoce como ACCESO PRIVADO

self._body < de esta forma, con un guion bajo, especificamos que la propiedad puede ser accedida tanto como la clase en donde fue declarada, como en las que hereden de esta, lo que se conoce como ACCESO PROTEGIDO

Por qu en Python no existe como tal una forma real de proteger a estos atributos?

  • Porque en realidad todos estos atributos son de acceso pblico, ya que podemos acceder a ellos y modificarlos a travs de la instancia simplemente llamando a la misma clase:
post = Post('Titulo del post', 'contenido del post', 'programacion', 'Nahuel')

*Para el caso donde el acceso sea "PRIVADO" post.Post._title = 'Cambiando el valor del ttulo'

*Para el caso donde el acceso sea "PROTEGIDO" post._Post._title = 'Cambiando el valor de ttulo'

def __init__(self, title, body, hashtags, author):        self._title = title        self._body = body        self._hashtags = hashtags        self._author = author    def get_name(self): return self._title    def get_body(self): return self._body    def get_hashtags(self): return self._hashtags    def get_author(self): return self._author`

Original Link: https://dev.to/nahuelsegovia/poo-encapsulamiento-44h1

Share this article:    Share on Facebook
View Full Article

Dev To

An online community for sharing and discovering great ideas, having debates, and making friends

More About this Source Visit Dev To