2
respostas

Acesso Privado em Python

Olá, tudo bem?

Pelo que entendi, no mundo Python não existe como no mundo Java definições de acesso por código, mas convenções. Ou seja, se colocarmos o __ na frente de um método, não existirá erro de compilação ao tentarmos acessá-lo diretamente, como ocorreria com Java: trata-se de convenção, algo tácito. É isso mesmo?

2 respostas

isso mesmo

Exato, tanto _ quanto __ na frente de um metodo define ele como privado, a diferença vai ser que um o python vai renomear a variavel pra nao ter problemas caso a classe filha tenha um metodo privado com o mesmo nome (se você usa _ e tem uma classe filha com um metodo com o mesmo nome que tambem usa _ pra ser privado o metodo da classe mãe vai ser sobrescrito, já com __ você evita isso).

E tudo pode ser acessado porque o python deduz que somos todos adultos que sabemos o que estamos fazendo enquanto estamos usando ele. Então se você quiser acessar uma variavel privada faça por sua conta e risco. Ninguem vai te impedir, mas existe o _ pra te alertar que você não deveria estar fazendo isso.

Se quiser saber mais sobre isso esse video é excelente (em inglês). Já coloquei no ponto que fala sobre a 'privacidade de metodos' no python mas se quiser pode assistir tudo.