Modificadores de acesso no Python

Pedro Lucas Lima
Codando na Prática
2 min readJan 30, 2021

--

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:

Método Public

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:

Método Protected

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:

Método privado

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

--

--