1
resposta

Entendendo o encapsulamento

Pelo que eu vi, tanto em Java script quanto em python, a forma de tornar um atributo privado (encapsular) não passa de um sinal de alerta ou uma convenção entre desenvolvedores. Existe alguma forma de realmente impedir a alteração de um atributo fora do método especificado pra isso ou eu sempre vou ter que confiar que outros desenvolvedores com acesso ao código vão respeitar essa frágil sinalização?

1 resposta

Olá João, tudo bem com você?

O encapsulamento tanto de métodos, quanto de atributos no Python, é um assunto que desperta diversas opiniões, isso por não ser algo obrigatório da linguagem - embora, seja extremamente importante definir a visibilidade de métodos e atributos quando se trabalha com orientação a objetos. Em Python não teremos um atributo ou método 100% privado.

Assim devemos contar com o profissionalismo das(os) programadoras(es) de que irão respeitar as conversões definidas pela comunidade e pela linguagem Python, compreender e respeitar essas conversões faz parte de nossa jornada de aprendizado com o objetivo a excelência.

Também, é importante dizer que não será possível invocar diretamente métodos que possuam duplo underscore fora da classe (através de objetos) e isso ocorre devido ao name mangling, que se trata de uma mudança no nome do método ou atributo para dificultar a leitura direta. Mas, reforço que apesar de dificultar, seu acesso não é impossível.

Para entender mais sobre atributos, métodos privados e até mesmo sobre name mangling, recomendo a leitura dos seguintes artigos - que estão em inglês, caso tenha dificuldade com o idioma, recomendo o uso do tradutor do navegador.

Em caso de dúvidas, encontro-me à disposição.

Abraços e bons estudos.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software