From ed6137331b8d70560c43218b60d8f7917e14164c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Ot=C3=A1vio?= Date: Thu, 1 Dec 2022 09:40:19 -0300 Subject: [PATCH] =?UTF-8?q?Solu=C3=A7=C3=A3o=20-=20Criando=20a=20classe=20?= =?UTF-8?q?ContaCorrente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aula158/contas.py | 32 ++++++++++++++++++++++++++++++-- aula158/main.py | 1 + 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/aula158/contas.py b/aula158/contas.py index 79cd32c..a891f9f 100644 --- a/aula158/contas.py +++ b/aula158/contas.py @@ -2,7 +2,7 @@ import abc class Conta(abc.ABC): - def __init__(self, agencia, conta, saldo): + def __init__(self, agencia, conta, saldo=0): self.agencia = agencia self.conta = conta self.saldo = saldo @@ -32,9 +32,37 @@ class ContaPoupanca(Conta): 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__': - cp1 = ContaPoupanca(111, 222, 0) + cp1 = ContaPoupanca(111, 222) cp1.sacar(1) cp1.depositar(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('##') diff --git a/aula158/main.py b/aula158/main.py index 0da7331..e5d2ad9 100644 --- a/aula158/main.py +++ b/aula158/main.py @@ -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) Banco autentica por um método. """ +import contas