1
resposta

[Projeto] Postagem do exercícios [07 Hora da prática: criando classes, construtores e métodos]

class ContaBancaria:
    contas = []
    def __init__(self, titular, saldo, ativo=False):
        self._titular = titular
        self._saldo = saldo
        self._ativo = ativo
        ContaBancaria.contas.append(self)

    def __str__(self):
        staus = 'Ativado' if self.ativo else 'Desativado'
        return f'Titualar: {self.titular} \nSaldo: {self._saldo:.2f} \nSituacao: {staus}'

    @property
    def titular(self):
        return self._titular

    @property
    def saldo(self):
        return self._saldo
    
    @property
    def ativo(self):
        return self._ativo
    
    def ativar_conta(self):
        self._ativo = not self.ativo

    @classmethod
    def imprime_dados(cls):
        print("\n --- Lista de contas ---")
        for dados in cls.contas:
             print(dados)
             print("-" * 30)
             


class ClienteBanco():
    clientes = []
    def __init__(self, nome, cidade, endereco, telefone, email):
        '''
        Inicializa um cliente com os parâmetros nome, cidade, endereco, telefone e email
        :param nome: Nome do cliente
        :param cidade: Cidade do cliente
        :param endereco: Endereço do cliente
        :param telefone: Telefone do cliente
        :param email: Email do cliente
        :type nome: str
        :type cidade: str
        :type endereco: str
        :type telefone: str
        :type email: str
        '''
        
        self.nome = nome
        self.endereco = endereco
        self.telefone = telefone
        self.email = email
        self.cidade = cidade
        ClienteBanco.clientes.append(self)


    def __str__(self):
            return f' Nome:  {self.nome} \n Cidade: {self.cidade} \n Endereço: {self.endereco} \n Telefone: {self.telefone} \n Email: {self.email}'
    
    @classmethod
    def imprime_clientes(cls):
            print("\n --- Lista de clientes ---")
            for cliente in cls.clientes:
                print(cliente)
                print("-" * 30)



conta_1 = ContaBancaria('Maria', 8000)
conta_1.ativar_conta()
conta_2 = ContaBancaria('Matheus', 1000)

cliente_1 = ClienteBanco('Joao Adalberto', 'Sao Paulo', 'Rua 1', '(11) 123456789', 'joao@example.com')
cliente_2 = ClienteBanco('Maria de Fatima', 'Cuiabá', 'Rua 2', '(65)123456789', 'maria@example.com')
cliente_3 = ClienteBanco('Pedro Gonçalves', 'Colider', 'Rua 3', '(66) 123456789', 'pedro@example.com')
#print("Titular 1: ",valor_1)
#print("\nTitular 2  :", valor_2)

ContaBancaria.imprime_dados()

ClienteBanco.imprime_clientes()
1 resposta

Oi, Roberson! Como vai?

Sua organização com classes separadas para contas bancárias e clientes está bem clara. É legal ver como você utilizou o método de classe para listar os objetos criados. Um ponto que chama atenção é o uso do decorator @property, deixando o acesso aos atributos mais seguro e controlado.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!