1
resposta

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

class Contabancaria():
    def __init__(self, titular, saldo):
        self._titular = titular
        self._saldo = saldo
        self._ativo = False

    def __str__(self):
        return f'Conta de {self._titular} - Saldo: {self._saldo}'

    def ativar_conta(self):
        self._ativo = True

    @property 
    def saudacao(self):
        if self._ativo:
            print(f'Olá, {self._titular}! Seu saldo é {self._saldo}')
        else:
            print('Conta inativa!')

jose =  Contabancaria('José', 1000)
maria = Contabancaria('Maria', 2000)    
print(jose)
print(maria)

Contabancaria.ativar_conta(jose)
Contabancaria.ativar_conta(maria)   

print(jose._ativo)
print(maria._ativo)

print(jose.saudacao)

mario =  Contabancaria('Mario', 1000)
print(mario._titular)

class ClienteBanco():

    clientes = []

    def __init__(self, nome, telefone, email, endereco, cidade):
        self.nome = nome
        self.telefone = telefone
        self.email = email
        self.endereco = endereco
        self.cidade = cidade
    
    def __str__(self):
        return f'{self.nome} || {self.telefone} || {self.email} || {self.endereco} || {self.cidade}'

    @classmethod
    def listar_clientes(cls):
        for cliente in cls.clientes:
            print(f'{cliente.nome} || {cliente.telefone} || {cliente.email} || {cliente.endereco} || {cliente.cidade}')


jose = ClienteBanco('José', '8728273', 'sbbdbbds@gmail.com', 'Rua assis, 123', 'São Paulo')
maria = ClienteBanco('Maria', '62562112', 'nbcnbcncvb@gmail.com', 'Rua presidente, 321', 'São Paulo')
klaus = ClienteBanco('Klaus', '62562112', 'vsbvasns@gmail.com', 'Rua jardim, 6523', 'São Paulo')

ClienteBanco.clientes = [jose, maria, klaus]
ClienteBanco.listar_clientes()
1 resposta

Olá, Paulo! Como vai?

Muito bem! Continue resolvendo os desafios e compartilhando com a comunidade Alura.

Observei que você explorou o uso de encapsulamento para proteger os atributos da classe, utilizou muito bem o decorador @property para criar um método de saudação controlado e ainda compreendeu a importância do método especial __str__ para representar os objetos de forma amigável.

Uma dica interessante para o futuro é usar f-strings com condicionais para tornar mensagens ainda mais dinâmicas. Dessa forma:

print(f'Olá, {self._titular}! {"Bem-vindo de volta!" if self._ativo else "Ative sua conta para continuar."}')

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!