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)