Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

0
respostas

criando classes, construtores e métodos

  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.
class ContaBancaria:
    def __init__(self, titular, saldo, ativo):
        self.titular = titular
        self.saldo = saldo
        self.ativo = False
  1. 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.
    def __str__(self):
        return f'Conta de {self.titular} | saldo disponivel: R${self.saldo}'

conta1 = ContaBancaria('Jose', 2000)
conta2 = ContaBancaria('Maria', 5000)
  1. 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.
def ativar_conta(self):
        self._ativo = True

conta3 = ContaBancaria('Joao', 600)
print(f'Antes de ativar: Conta Ativa? {conta3._ativo}')
conta3.ativar_conta()
print(f'Depois de ativar: Conta ativa? {conta3._ativo}
  1. Refatore a classe ContaBancaria para utilizar a abordagem "pythonica" na criação de atributos. Utilize propriedades, se necessário.
class ContaBancaria:
    def __init__(self, titular, saldo):
        self._titular = titular
        self._saldo = saldo
        self._ativo = False

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

    @property
    def saldo(self):
        return self._saldo

    @property
    def ativo(self):
        return self._ativo

    def ativar_conta(self):
        self._ativo = True
  1. Crie uma instância da classe e imprima o valor da propriedade titular.
conta4 = ContaBancaria('Pedro', 3000)
print(f'Titular da conta 4: {conta4.titular}')
  1. 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.
class ClienteBanco:
    def __init__(self, nome, idade, rua, cpf, telefone):
        self.nome = nome
        self.idade = idade
        self.rua = rua
        self.cpf = cpf
        self.telefone = telefone

cliente1 = ClienteBanco(nome= 'Fernado', idade=32, rua= 'rua A', cpf='123.456.789-01', telefone= '(66)2833-0412')
cliente2 = ClienteBanco(nome='Fernada', idade=29, rua='rua b', cpf='074.633.830-91', telefone='(74) 3753-8133')
cliente3 = ClienteBanco(nome='Domitilia', idade=59, rua='rua c', cpf='073.387.600-55', telefone='(73) 3585-3844')
  1. Crie um método de classe para a conta ClienteBanco.
class ClienteBanco:
    
    @classmethod
    def criar_conta(cls, titular, saldo_inicial):
        return cls(titular, saldo_inicial)

conta_cliente1 = ClienteBanco.criar_conta('Tuany', 2500)
print(f'Conta de {conta_cliente1.titular} criada com saldo inicial de R${conta_cliente1.saldo}')