1
resposta

O que foi feito aos 11:45?

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?

1 resposta

Olá Sebastião, tudo bem com você?

Nesse momento apresentado na aula (aos 11:45), é realizada a seguinte mudança no código.

  • No método inicializador (__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.

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!