Baixe o conteúdo do site em PDF: Apostila Python Progressivo
Dados públicos e privados
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).

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:

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