Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Dúvida sobre atributos privados

Primeiramente, parabéns pela didática, muito boa! :-) Uma dúvida: O professor removeu o __ do nome dos atributos da classe, e ao invés disso, colocou com somente um _ Eu havia aprendido no primeiro curso da Alura de OO que para se declarar um atributo privado você deve utilizar dois __ antes do nome do atributo, isso realmente me confundiu um pouco... afinal... nos dois casos eles tem a mesma função?

4 respostas
solução!

Bom dia , Sim! Eles tem a mesma função poréeeem, servem como sinalização.

se outra pessoa estiver usando o código e tentar alterar um valor diretamente, irá ver que o atributo está com o __ , é um aviso.

"Cara, esse atributo tem o __ , você não deveria estar mexendo nele diretamente". É apenas uma 'conveção' que o pessoal que usa python determinou.

Bom dia!! Sim, na realidade o atributo privado no Python é somente um açucar sintatico, serve para avisar aos programadores que utilizarão o código que aquele atributo é "privado".

Exatamente, o atributo, conforme explicado pelo professor, não fica efetivamente privado quando se colocam dois underscores.

Fazendo isso o python avisará ao programador que aquele atributo foi setado como "privado", mas continuará sendo possível acessá-lo.

Já apenas um underscore também é um modificador de acesso, porém não trará esse aviso ao programador e, portanto, é usado apenas como convenção.

É sempre bom lembrar o motivo de se utilizar modificadores de acesso em python. Em tese, não é para impedir absolutamente que vc acesse o atributo, mas sim deixar bem claro para o programador que ele está mexendo em um local que demanda todo o cuidado do mundo.

Entendi, agradeço pelas respostas, me ajudaram demais.