Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Métodos e atributos privados

Eu estou com uma dúvida bem inocente, mas tem me confundido um tanto, especialmente quando começamos a estudar orientação à objetos com python. Entendo a necessidade de termos atributos ou métodos privados na hora de programar, mas pelo que eu tenho visto, é possível acessá-los fora de contexto. E também, que o python (especificamente) considera a maturidade dos programadores.

Mas a dúvida é qual a real necessidade da privação de métodos e atributos, não só no python, mas num contexto geral? Minha impressão pessoal é uma questão de segurança, mas estou inserto sobre como usar essa característica da programação. Alguém poderia me ajudar, talvez com algum exemplo?

1 resposta
solução!

Oi Luis, tudo bem?

Então, sobre os modificadores de acesso, sua principal função é gerar um controle melhor sobre suas classes, atributos e métodos.

Imagine que você criou sua classe, e tem lá seus métodos e atributos, pense na bagunça que daria pra ser feito com a possibilidade de alterá-los apenas com uma referência direta a seus nomes, não ficaria legal e você não teria qualquer controle sobre isso.

Com os modificadores de acesso você limita o alcance dessas alterações, vide modificadores como "private" ou "protected", por exemplo, onde cada um restringe de um modo o acesso.

Assim, quando você usa por exemplo o modificador "private", você necessariamente precisa criar um método para acesso (getters e setters por exempo), e então você pode controlar esse método, criar suas próprias restrições, enfim.

Alguns modificadores e seu alcance:

Public – o acesso fica livre em qualquer lugar do programa.

Private – o acesso fica permitido somente dentro da classe onde ele foi declarado.

Protected – apenas a classe que contém o modificador e os tipos derivados dessa classe tem o acesso.

Espero de alguma forma ter ajudado.

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