1
resposta

[Projeto] Hora da prática: criando classes, construtores e métodos

class ContaBancaria:

    def __init__(self, titular="", saldo=0.0, ativo=False):
        self._titular = titular
        self._saldo = saldo
        self._ativo = False

    def __str__(self): 
        return f'{self._titular} | {self._saldo}'

    def imprimir_saldo(self):  
        print(f'{"Nome titular".ljust(25)} | {"Saldo".ljust(10)} | {"Ativo"}')
        print(f'{self._titular.ljust(25)} | {str(self._saldo).ljust(10)} | {self._ativo}')

    def ativar_conta(self):
         self._ativo = not self._ativo


conta1 = ContaBancaria("Luna", 250.0, True)
conta1.ativar_conta()        

conta1.imprimir_saldo()     
print('''
      ''') 


class ContaBancariapythonica:

    def __init__(self, titular="", saldo=0.0, ativo=False):
        self._titular = titular
        self._saldo = saldo
        self._ativo = False

    @property
    def titular(self): 
        return f'{self._titular}'
    
    def saldo(self): 
        return f'{self._saldo}'
    
    def ativo(self): 
        return f'{self._ativo}'

conta = ContaBancariapythonica("Debora",100)
print(f'Nome da titular da conta: {conta.titular}')

print('''
      ''') 

class ClienteBanco:

    def __init__(self, nome="", profissao="", salario=0.0, saldo=0.0, status_conta=False):
        self._nome = nome
        self._profissao = profissao
        self._salario = salario
        self._saldo = saldo
        self._status_conta = status_conta

    @classmethod
    def clientes(cls, nome, profissao, salario, saldo, status_conta):
        return cls(nome, profissao, salario, saldo, status_conta)
    
cliente1 = ClienteBanco.clientes("Ana", "Engenheira", 8000, 1500, True)
cliente2 = ClienteBanco.clientes("Carlos", "Médico", 10000, 3000, True)
cliente3 = ClienteBanco.clientes("Lúcia", "Designer", 5000, 500, False)
1 resposta

Oi, Karoline! Tudo bom?

Excelente! Siga praticando com os desafios e sempre compartilhe conosco.

Você soube aplicar o encapsulamento de forma eficiente para proteger os atributos das classes, aproveitou o uso de @property para expor dados de forma controlada e entendeu como o método de classe (@classmethod) é essencial para criar instâncias alternativas com mais clareza e organização.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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