Solução - Criando a classe ContaCorrente

This commit is contained in:
Luiz Otávio
2022-12-01 09:40:19 -03:00
parent 6a83dca1cd
commit ed6137331b
2 changed files with 31 additions and 2 deletions

View File

@@ -2,7 +2,7 @@ import abc
class Conta(abc.ABC): class Conta(abc.ABC):
def __init__(self, agencia, conta, saldo): def __init__(self, agencia, conta, saldo=0):
self.agencia = agencia self.agencia = agencia
self.conta = conta self.conta = conta
self.saldo = saldo self.saldo = saldo
@@ -32,9 +32,37 @@ class ContaPoupanca(Conta):
self.detalhes(f'(SAQUE NEGADO {valor})') self.detalhes(f'(SAQUE NEGADO {valor})')
class ContaCorrente(Conta):
def __init__(self, agencia, conta, saldo=0, limite=0):
super().__init__(agencia, conta, saldo)
self.limite = limite
def sacar(self, valor):
valor_pos_saque = self.saldo - valor
limite_maximo = -self.limite
if valor_pos_saque >= limite_maximo:
self.saldo -= valor
self.detalhes(f'(SAQUE {valor})')
return self.saldo
print('Não foi possível sacar o valor desejado')
print(f'Seu limite é {-self.limite:.2f}')
self.detalhes(f'(SAQUE NEGADO {valor})')
if __name__ == '__main__': if __name__ == '__main__':
cp1 = ContaPoupanca(111, 222, 0) cp1 = ContaPoupanca(111, 222)
cp1.sacar(1) cp1.sacar(1)
cp1.depositar(1) cp1.depositar(1)
cp1.sacar(1) cp1.sacar(1)
cp1.sacar(1) cp1.sacar(1)
print('##')
cc1 = ContaCorrente(111, 222, 0, 100)
cc1.sacar(1)
cc1.depositar(1)
cc1.sacar(1)
cc1.sacar(1)
cc1.sacar(98)
cc1.sacar(1)
print('##')

View File

@@ -35,3 +35,4 @@ Banco será responsável autenticar o cliente e as contas da seguinte maneira:
Só será possível sacar se passar na autenticação do banco (descrita acima) Só será possível sacar se passar na autenticação do banco (descrita acima)
Banco autentica por um método. Banco autentica por um método.
""" """
import contas