Quando era introduzido o valor "agencia falsa" no valor da agencia, ele retornava "agencia falsa" e na execução seguinte ele passou a retornar uma mensagem de erro. Na aula não tem alteração no código. O que ocorreu?
Quando era introduzido o valor "agencia falsa" no valor da agencia, ele retornava "agencia falsa" e na execução seguinte ele passou a retornar uma mensagem de erro. Na aula não tem alteração no código. O que ocorreu?
Olá Sebastião, tudo bem com você?
Nesse momento apresentado na aula (aos 11:45), é realizada a seguinte mudança no código.
__init__
) da classe ContaCorrente
, o atributo self.__agencia
é declarado como um atributo público, ficando da seguinte forma self.agencia
(retirando o duplo underscore), o código é salvo e executado.O método inicializador ficará da seguinte forma.
def __init__(self, cliente, agencia, numero):
self.__saldo = 100
self.cliente = cliente
self.agencia = agencia
self.__numero = numero
ContaCorrente.total_contas_criadas += 1
ContaCorrente.taxa_operacao = 30 / ContaCorrente.total_contas_criadas
Ao executar o código será gerado o mesmo erro apresentado na aula, um erro de atributo (AttributeError).
No decorrer da aula será realizado o mesmo teste com o atributo self.__saldo
, transformando-o em um atributo não privado e verificando qual o erro será apresentado.
A partir do minuto 16:00 dessa mesma aula é iniciado a refatoração do código com o objetivo de remover a ocorrência dos erros, isso será feito retirando o property do tipo setter dos métodos agencia
e saldo
, passando a fazer o uso de métodos privados (__set_agencia
e __set_numero
).
Já a correção de validação da criação de um objeto passando como atributo a string agencia falsa
será realizado na próxima aula, com implementações de elevação de erro com o uso do raise
.
Fico à disposição em caso de dúvidas.
Abraços e bons estudos.