1
resposta

[Dúvida] Encapsulamento

Usando os underscores estou encapsulando o meu código, ok? Mas ainda posso modificá-lo, há alguma função ou algo que eu possa fazer para não deixar o meu código tão vulnerável?

1 resposta

Olá Darley, 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.

O conteúdo recomendado acima está em inglês, o uso da língua inglesa é bem comum na área de tecnologia, mas não se preocupe, caso não tenha afinidade com essa linguagem, recomendo que utilize o tradutor do navegador para uma melhor compressão.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Espero ter lhe ajudado. Em caso de dúvidas estou à 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