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