Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Exercício 03

Prezado, Boa noite!

No caso do status da conta não seria um atributo da conta em si (objeto) ? Confesso que se eu não tivesse lido o comando eu teria feito um método de instância. É de classe porque toda conta começa com ativo = False ? Mas e em casos que eu já ativei e quero desativar ? Não seria mais um atributo da classe e sim do objeto.

a priori eu faria assim :

class ContaBancaria:
    def __init__(self, titular ='', saldo = 0):
        self._titular = titular
        self._saldo = saldo
        self._status = False

    def __str__(self):
        return f'Titular: {self._titular.ljust(20)} | Saldo: {self._saldo:2} | Status: {self._status}'
    
    
    def ativa_desativa_conta(self):
        self._status = not self._status

pessoa1 = ContaBancaria('Marcus Vinícius', 20000.0)
pessoa2 = ContaBancaria('Késia Ashiley', 1000.0)

print('Informações básicas da conta \n')

print(pessoa1)
print(pessoa2)
pessoa1.ativa_desativa_conta()
pessoa2.ativa_desativa_conta()
print()
print('Informações básicas da conta \n')
print(pessoa1)
print(pessoa2)
1 resposta
solução!

Olá Marcus, tudo bem com você?

Sua interpretação está correta. O status de uma conta (se é ativo ou não) poderia ser um atributo da conta (objeto), e não da classe. Isso porque cada conta pode ter um status diferente (ativa ou inativa).

No entanto, no contexto deste exercício, o objetivo era praticar o uso de métodos de classe. Por isso, foi solicitado que o método ativar_conta fosse um método de classe e não de instância. Quanto a ativar e desativar uma conta, você pode fazer isso com um método de instância, como você fez em seu código para inverter o valor do status.

Conte com o apoio do Fórum na sua jornada. Espero ter ajudado. Fico à disposição. Abraços e bons estudos!

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