Olá!
Percebi uma possível inconsistência entre o enunciado e a resolução de um dos exercícios da aula de POO.
O enunciado diz:
"Adicione um método de classe chamado ativar_conta à classe ContaBancaria que define o atributo ativo como True."
Porém, nos exercícios anteriores o atributo ativo é criado no construtor (init), ou seja, como um atributo de instância (self._ativo).
Além disso, a resolução implementa:
def ativar_conta(self):
self._ativo = True
Esse é um método de instância, e não um método de classe, já que não utiliza o decorator @classmethod nem recebe cls como parâmetro.
Quando tentei seguir exatamente o que o enunciado pedia, implementei:
@classmethod
def ativar_conta(cls):
cls._ativo = True
No entanto, isso cria/altera um atributo da classe, enquanto o atributo _ativo havia sido definido como atributo da instância no construtor, gerando um comportamento diferente do esperado.
Minha dúvida é: o enunciado deveria pedir um método de instância em vez de um método de classe, ou a intenção era que ativo fosse um atributo da classe desde o início?
Acredito que seria interessante revisar esse exercício para que o enunciado e a resolução fiquem consistentes e não gerem essa dúvida para outros alunos.
Obrigado!