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: R${self.saldo}"
@classmethod
def ativar_conta(cls, conta):
conta._ativo = True
# Testando __str__ e ativação
conta1 = ContaBancaria("João", 1000)
conta2 = ContaBancaria("Maria", 500)
print(conta1)
print(conta2)
conta3 = ContaBancaria("Carlos", 200)
print(f"Antes de ativar: Conta ativa? {conta3._ativo}")
ContaBancaria.ativar_conta(conta3)
print(f"Depois de ativar: Conta ativa? {conta3._ativo}")
# Classe mais Pythonica com propriedades
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
conta4 = ContaBancariaPythonica("Fernanda", 1500)
print(f"Titular da conta 4: {conta4.titular}")
# ClienteBanco completo com método de classe
class ClienteBanco:
def __init__(self, nome, idade, endereco, cpf, profissao):
self.nome = nome
self.idade = idade
self.endereco = endereco
self.cpf = cpf
self.profissao = profissao
@classmethod
def criar_conta(cls, titular, saldo_inicial):
return ContaBancariaPythonica(titular, saldo_inicial)
cliente1 = ClienteBanco("Ana", 30, "Rua A", "123.456.789-01", "Backend")
cliente2 = ClienteBanco("Luiza", 25, "Rua B", "987.654.321-01", "Estudante")
cliente3 = ClienteBanco("Vinny Neves", 40, "Rua C", "111.222.333-44", "Frontend")
conta_cliente1 = ClienteBanco.criar_conta("Ana", 2000)
print(f"Conta de {conta_cliente1.titular} criada com saldo inicial de R${conta_cliente1.saldo}")