From c32d02430e2369bd21454e193b74b573227322bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luiz=20Ot=C3=A1vio?= Date: Fri, 2 Dec 2022 08:06:04 -0300 Subject: [PATCH] =?UTF-8?q?Solu=C3=A7=C3=A3o=20-=20Criando=20a=20classe=20?= =?UTF-8?q?Cliente?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- aula158/contas.py | 11 +++++++++++ aula158/main.py | 2 +- aula158/pessoas.py | 25 +++++++++++++++++++++++++ 3 files changed, 37 insertions(+), 1 deletion(-) diff --git a/aula158/contas.py b/aula158/contas.py index a15e962..51f07ff 100644 --- a/aula158/contas.py +++ b/aula158/contas.py @@ -19,6 +19,11 @@ class Conta(abc.ABC): print(f'O seu saldo é {self.saldo:.2f} {msg}') print('--') + def __repr__(self): + class_name = type(self).__name__ + attrs = f'({self.agencia!r}, {self.conta!r}, {self.saldo!r})' + return f'{class_name}{attrs}' + class ContaPoupanca(Conta): def sacar(self, valor): @@ -56,6 +61,12 @@ class ContaCorrente(Conta): self.detalhes(f'(SAQUE NEGADO {valor})') return self.saldo + def __repr__(self): + class_name = type(self).__name__ + attrs = f'({self.agencia!r}, {self.conta!r}, {self.saldo!r}, '\ + f'{self.limite!r})' + return f'{class_name}{attrs}' + if __name__ == '__main__': cp1 = ContaPoupanca(111, 222) diff --git a/aula158/main.py b/aula158/main.py index 99eb9fd..416f928 100644 --- a/aula158/main.py +++ b/aula158/main.py @@ -10,7 +10,7 @@ Conta (ABC) Pessoa Cliente - Clente -> Conta + Clente -> Conta (um para um ou um para muitos) Banco Banco -> Cliente diff --git a/aula158/pessoas.py b/aula158/pessoas.py index ac312f5..03aeecd 100644 --- a/aula158/pessoas.py +++ b/aula158/pessoas.py @@ -1,3 +1,6 @@ +import contas + + class Pessoa: def __init__(self, nome: str, idade: int) -> None: self.nome = nome @@ -18,3 +21,25 @@ class Pessoa: @idade.setter def idade(self, idade: int): self._idade = idade + + def __repr__(self): + class_name = type(self).__name__ + attrs = f'({self.nome!r}, {self.idade!r})' + return f'{class_name}{attrs}' + + +class Cliente(Pessoa): + def __init__(self, nome: str, idade: int) -> None: + super().__init__(nome, idade) + self.conta: contas.Conta | None = None + + +if __name__ == '__main__': + c1 = Cliente('Luiz', 30) + c1.conta = contas.ContaCorrente(111, 222, 0, 0) + print(c1) + print(c1.conta) + c2 = Cliente('Maria', 18) + c2.conta = contas.ContaPoupanca(112, 223, 100) + print(c2) + print(c2.conta)