Modificadores de acesso no Python
Programação orientada a objetos — POO no Python vem cada vez mais se popularizando com a crescente alta em que a linguagem vem apresentando nos últimos anos, e quando se fala em POO com Python, sempre é um grande problema por não haver muitos conteúdos com a linguagem.
Dentro do POO temos os modificadores de acessos, e aqui vamos aprender um pouco na prática o public, private e protected.
Public
O modificador de acesso public, é o mais comum dentro dos modificadores, ele é o método que permite ser acessado tanto de dentro de uma classe quanto de fora, ou seja, é literalmente público, a sua implementação é a mais simples possível, vejamos o código abaixo:
Dessa forma, todos os métodos da classe pessoa estão disponíveis para acesso, permitindo que o desenvolvedor tenha a possibilidade do uso de qualquer uma delas, por exemplo:
>>> pessoa = Pessoa()
>>> pessoa.set_idada(30)
>>> pessoa.get_idade()
30
>>> pessoa.inserir_idade(35)
>>> pessoa.mostrar_idade()
35
Neste caso as duas maneiras são totalmente legais, tendo em vista que é um método público e extensível para as aplicações que irá instanciar essa classe.
Protected
Quando falamos em protected, hoje não há de maneira alguma, impedimentos para que você tenha acesso a esse método de dentro da classe, vejamos o exemplo a seguir:
Para deixar um método como protected, você deverá passar um underline _ na frente do nome deste, dessa forma, você estará avisando ao desenvolvedor que este estará protegido e somente as suas classes e sub-classes terão acesso a ele.
>>> pessoa = Pessoa()
>>> pessoa.set_idada(30)
>>> pessoa.get_idade()
30
E como enunciado acima, nada impede que você poderá acessa-la de fora da classe, mas a prática deve ser evitada.
>>> pessoa._inserir_idade(35)
>>> pessoa._mostrar_idade()
35
Private
O private é o modificador de acesso mais restrito da POO, ele permite que somente a sua classe tenha acesso a um determinado método, ou seja nem mesmo as suas sub-classes tem acesso a ela, evitando assim possíveis conflitos entre métodos de classes ou até mesmo a manipulação destes dentro de uma aplicação mais robusta. Vejamos o exemplo:
Para definir que um método seja privado, você deverá colocar underline duplo __ na frente do nome do método. Vamos tentar fazer uso:
>>> pessoa = Pessoa()
>>> pessoa.set_idada(30)
>>> pessoa.get_idade()
30
>>> pessoa.__inserir_idade(35)Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Pessoa' object has no attribute '__inserir_idade'
Isso é apenas uma introdução de POO para a linguagem, espero que tenham entendido o assunto, vou tentar escrever mais artigos por aqui referente ao assunto, assim tornamos a comunidade mais ativa e eficiente!
Grande abraço e até a próxima.
Linkedin: https://www.linkedin.com/in/pedrolucaslima
GitHub: https://github.com/lclpedro
Fontes:
https://www.tutorialsteacher.com/python/public-private-protected-modifiers