Junior — Middle
Como é implementado o princípio de encapsulamento na linguagem Python?
sobes.tech IA
Resposta da IA
Em Python, a encapsulação é implementada através de convenções de nomenclatura e mecanismos especiais, uma vez que a linguagem não possui privacidade rigorosa como em algumas outras linguagens.
- Atributos e métodos públicos — nomes sem sublinhados, acessíveis em qualquer lugar.
- Atributos protegidos — nomes com um único sublinhado
_atributo, indicando que o elemento é destinado ao uso interno, mas tecnicamente acessível de fora. - Atributos privados — nomes com dois sublinhados
__atributo, que provocam o mangling do nome, dificultando o acesso externo.
Exemplo:
class MinhaClasse:
def __init__(self):
self.publico = "acessível a todos"
self._protege = "recomendado não usar fora da classe"
self.__privado = "oculto do acesso externo"
obj = MinhaClasse()
print(obj.publico) # funciona
print(obj._protege) # funciona, mas não recomendado
# print(obj.__privado) # causará erro
print(obj._MinhaClasse__privado) # acesso via mangling de nome
Assim, a encapsulação em Python é mais um acordo e uso de mecanismos de mangling, do que restrições rígidas.