1
resposta

[Projeto] Aplicação da prática

Abaixo a prática das atividades

#   E   X   E   R   C   Í   C   I   O   S

#1. Crie uma classe chamada ContaBancaria com um construtor que aceita os parâmetros titular e saldo. Inicie o atributo ativo como False por padrão.
#2. Na classe ContaBancaria, adicione um método especial __str__ que retorna uma mensagem formatada com o titular e o saldo da conta. Crie duas instâncias da classe e imprima essas instâncias.
#3. Adicione um método de classe chamado ativar_conta à classe ContaBancaria que define o atributo ativo como True. Crie uma instância da classe, chame o método de classe e imprima o valor de ativo.
class ContaBancaria:
    def __init__(self, titular, saldo):
        self.titular = titular
        self.saldo = saldo
        self._ativo = False

    def __str__(self):
        return f'Titular: {self.titular} | Saldo: {self.saldo}'
    
    @classmethod
    def ativar_conta(cls, cliente):
        cliente._ativo = True
    
cliente1 = ContaBancaria('João Martins', 125)
cliente2 = ContaBancaria('Marcia Almeida', 1536)
cliente3 = ContaBancaria('Felicio Andes', 10000)

print(cliente1)
print(cliente2)
print(f'Antes de ativar: Conta Ativa? {cliente3._ativo}')
ContaBancaria.ativar_conta(cliente3)
print(f'Depois de ativar: Conta Ativa? {cliente3._ativo}')

#4. Refatore a classe ContaBancaria para utilizar a abordagem "pythonica" na criação de atributos. Utilize propriedades, se necessário.
#5. Crie uma instância da classe e imprima o valor da propriedade titular.
class ContaBancariaPythonica:
    def __init__(self, titular, saldo):
        self._titular = titular
        self._saldo = saldo
        self._ativo = False

    @property
    def titular(self):
        return self._titular
    
    @property
    def saldo(self):
        return self._saldo
    
    @property
    def ativo(self):
        return self._ativo

cliente4 = ContaBancariaPythonica('Clara', 2358)
print(f'Titular: {cliente4.titular}')

#6. Crie uma classe chamada ClienteBanco com um construtor que aceita 5 atributos. Instancie 3 objetos desta classe e atribua valores aos seus atributos através do método construtor.
#7. Crie um método de classe para a conta ClienteBanco.
class ClienteBanco:
    def __init__(self, nome, idade, cpf, endereco, profissao):
        self._nome = nome
        self._idade = idade
        self._cpf = cpf
        self._endereco = endereco
        self._profissao = profissao

    @classmethod
    def abrir_conta(cls, titular, saldo_inicial):
        conta = ContaBancariaPythonica(titular, saldo_inicial)
        return conta

conta1 = ClienteBanco('Fulano', 25, 'Rua A', '123.456.789-01', 'Músico')
conta2 = ClienteBanco('Ciclano', 30, 'Rua B', '123.654.789-10', 'Arquiteto')
conta3 = ClienteBanco('Beltrano', 37, 'Rua C', '321.645.987-00', 'Comediante')

conta_cliente1 = ClienteBanco.abrir_conta('Lala', 3000.25)
print(f'Conta de {conta_cliente1.titular} criada com saldo inicial de R${conta_cliente1.saldo}')
1 resposta

Olá Gabriel, tudo bem com você?

Ótimo trabalho nos exercícios de programação. A implementação da classe ContaBancaria e sua refatoração para ContaBancariaPythonica mostram um bom entendimento de Python. É interessante ver como você utilizou propriedades para garantir o acesso controlado aos atributos. Além disso, a criação da classe ClienteBanco com um método de classe para abrir contas bancárias demonstra um bom uso de encapsulamento e abstração.

Continue explorando esses conceitos para aprimorar ainda mais suas habilidades em programação orientada a objetos.

Conte com o apoio do Fórum na sua jornada. Abraços e bons estudos!