Atributos Privados - Escondendo Informações em Python

Neste tutorial simples e curto, vamos aprender como tornar um atributo de uma classe privado, ou seja, fazer com que ele fique 'escondido' do mundo exterior fora da classe.

Baixe o conteúdo do site em PDF: Apostila Python Progressivo

Dados públicos e privados

Vamos supor que você fez um sistema enorme, para uma multinacional.

Dentro da classe Funcionario tem um atributo chamado senha, com a senha de cada funcionário, para eles fazerem o login no sistema da empresa.

Porém, um hacker invadiu seu sistema: deu um print nesse atributo:

class Funcionario:
 def __init__(self):
  self.senha = 'senha'
  
gerente = Funcionario()
print("Senha do gerente:", gerente.senha)

Com isso, é possível ver que a senha do usuário é senha (assuma, você já usou essa senha super criativa).

Como tornar um atributo privado em Python


Ou seja, temos aí uma falha! O ideal seria que algumas informações de nossas classes e objetos não fossem públicas assim

Vamos consertar isso.

Atributo Privado: __atributo

Para tornar um atributo o mais privado possível, você deve adicionar antes do seu nome dois caracteres de underline.


Ou seja, se antes usávamos senha, agora vamos usar __senha
Veja o código e o que acontece quando tentamos acessar o atributo gerente.__senha agora:

Apostila de Python para download

Isso mesmo, vai dar um erro!
O Python diz pro hacker que o atributo __senha não existe no objeto!

Segurança em Python

É sempre bom definirmos variáveis privadas com dois underscores, pois isso mostra que aquele atributo é especial, ele não pode ser tratado por algo fora do objeto.

Ele deve ser acessado e modificado somente por métodos do próprio objeto.
Por exemplo, um funcionário não precisa e nem deve ter acesso ao atributo de salário de outros funcionários, isso é uma informação particular.

Quem deve acessar esse atributo, por exemplo, é o método que calcula o imposto de renda no contra-cheque, ou o que desconta o valor do plano de saúde, pois essas coisas são baseadas no salário.

Mais na frente, durante nosso curso de Python, vamos falar mais sobre segurança, hábitos e procedimentos que devemos tomar para fazer um código mais seguro, robusto e estável.

Isso vai fazer de você um programador bem diferenciado no mercado.
Obtenha aqui seu certificado para ser um profissional de Python.

Nenhum comentário:

Postar um comentário