Adicionei os metodos inadimplencia e cartao_credito na classe, e usei o retorno de inadimplencia pra incrementar o codigo do cartão de credito. Há um contador que observa se os metodos foram usados se foram por mais de 2 vezes, e nao hã inadimplencia ele libera o cartão de credito.
class Conta:
#__init__ é uma função construtora que aloca todos os atributos
def __init__(self, numero, titular, saldo, limite): # atributos
print('esta é a conta {} '.format(self))
self.__numero = numero
self.__titular = titular
self.__saldo = saldo
self.__limite = limite
self.method_count = 0
def extrato(self): #metodos todos que tem def
print(f'saldo {self.__saldo} do titular {self.__titular}')
def deposita(self, valor):
self.__saldo += valor
self.method_count += 1
def saca(self,valor):
self.__saldo -= valor
self.method_count += 1
def transferir(self, valor, destino):
self.saca(valor)
destino.deposita(valor)
# não inclui o method_count porque ele já é chamado no saca() então ele iria ser chamado duas vezes
def inadimplencia(self):
if self.__saldo <= 100:
print(f'{self.__titular } é inadimplente!')
else:
print(f'{self.__titular} não é inadimplente!')
return self.__saldo <= 100
def cartao_credito(self):
if self.method_count >= 2 and not self.inadimplencia():
print('Você esta elegivel para o cartão!')
else:
print('Movimente mais a sua conta e tente de novo!')