Sobes.tech
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.