1
resposta

Forçar a dar erro.

Caraca! Ele cria um atributo novo dentro do objeto! Arriscadíssimo isso! Não tem como forçar o Python a dar um erro de atributo inexistente? O pior é que um desavisado pode fazer:

r = Retangulo(7,6)
r.x = 9
//Agora eu tenho r._Retangulo__x = 7 e r.x = 9 dentro do objeto!
r.obter_area()

E achar que a área de um retângulo de 9 x 6 é 42! Imaginem isso num cenário de atualização de saldo de conta contábil a partir de um valor de lançamento, onde o sistema deverá atualizar de forma recursiva todos os saldos das contas mães?!

1 resposta

Tive a mesma dúvida! Não só isso, será que não é possível impedir a criação de um atributo inexistente sem ser acessando a classe por ela mesma? Isso poderia ser bem problemático, eu acho....