Programação orientada a objetos (POO) é uma ferramenta que permite a criação de códigos mais organizações. Também permite a criação de código que é reutilizável e escalável, o que é ideal para lidar com a complexidade e o volume de dados. Qualquer cientista de dados que deseja aprimorar suas habilidades e desenvolver projetos mais eficientes deve aprender POO. Por isso nesse post vamos introduzir esse método.
O conceito de POO é um pouco mais complicado e talvez levará algum tempo para entender bem essa técnica. Contudo, é uma maneira excelente de programar, pois tem uma flexibilidade maior e mais efetiva para solucionar problemas mais complexos.
Então, vamos lá aprender como fazer isso.
O que é Programação Orientada de Objetos?
A programação orientada de objetos é uma forma de programar, que organiza o código ao redor de objetos. Por isso chamado de POO.
Essa forma de programação simplifica problemas mais complexos, dividindo em unidades menores. Também ajuda a reusar todas essas formas sem ter que reescrever tudo que estávamos fazendo.
Para entender melhor, usaremos uma analogia que corresponde a esse caso.
Exemplos de Classes
Imagine que "Class" ou classe é um molde de biscoito e o objeto é o próprio biscoito. O molde descreve o formato e as regras do biscoito (tamanho, sabor, cobertura), mas não é um biscoito de verdade. Só quando o molde é usado que nasce o biscoito concreto.
Em POO, a classe é a descrição do que algo é, e como saber fazer. O objeto é a coisa em si, criada a partir dessa descrição.
Agora, pense em um carro. Todos os carros tem coisas em comum: marca, cor, número de portas, e todos ligam, aceleram e freiam. Isso é a classe Carro. O seu carro específico — um Gol vermelho — é um objeto dessa classe. Cada objeto guarda os seus próprios dados. Por exemplo, o seu Gol vermelho não muda de cor por causa do carro da vizinha.
Outra coisa envolvida com POO é herança. Digamos que a sua classe chama-se "Veículo", carros e motos pertencem a classe veículo. Pois ambos tem algo em comum, como rodas, motor e condições para movimentar. Carro e moto recebem os itens comuns e o resto pode construir por si mesmo.
Exemplos Práticos
Vamos criar uma conta bancária. A class (classe) é a Conta Bancária. Todas as contas estão nesse banco. Então esse é o nosso molde.
Imediatamente, quando criamos uma classe temos também que fazer o construtor, que no caso é init. O mais básico de uma conta bancária seria o nome do titular e o saldo. Então vamos iniciar isso:
class ContaBancaria:
def __init__(self, titular, saldo_inicial=0):
self.titular = titular
self._saldo = saldo_inicial # atributo protegido
Uma coisa que ainda não falamos é sobre o sublinhado. Observe que o saldo tem _ na frente. Isso só está indicando que é um atributo interno e não deve ser usado pelo usuário.
O self.titular vai guardar o nome do titular da conta.
Criando uma Porta de Leitura
Vamos adicionar ao código:
class ContaBancaria:
def __init__(self, titular, saldo_inicial=0):
self.titular = titular
self._saldo = saldo_inicial # atributo protegido
@property
def saldo(self):
# Só leitura pública; evita mexer direto em _saldo
return self._saldo
Observe que eu adicionei o @property que transforma esse método em um atributo somente para leitura. Assim podemos checar o saldo, mas não conseguiremos mudar. Por exemplo, podemos fazer conta.saldo e mostrará o saldo. Mas não conseguiremos fazer conta.saldo = 500.
Isso garante que qualquer mudança no saldo precisa passar por regras de segurança. Então, a próxima pergunta é: como mudar o saldo?
Modificando o Saldo
Agora já vou adicionar depósito e saque.
class ContaBancaria:
def __init__(self, titular, saldo_inicial=0):
self.titular = titular
self._saldo = saldo_inicial # atributo protegido
@property
def saldo(self):
# Só leitura pública; evita mexer direto em _saldo
return self._saldo
def depositar(self, valor):
if valor > 0:
self._saldo += valor
def sacar(self, valor):
if 0 < valor <= self._saldo:
self._saldo -= valor
return valor
print("Saldo insuficiente ou valor inválido.")
return 0
Com essa adição eu já estou colocando aqui para o Python só aceitar depósitos positivos, e só autorizar saques que evitem a conta ir ao negativo.
Como Usar Essa Classe
Vamos criar uma conta bancária, depositar dinheiro, buscar o saldo, e sacar algum dinheiro.
conta = ContaBancaria("Ana", 100) # cria a conta com 100 de saldo
Vamos depositar mais dinheiro e checar o saldo.
conta.depositar(50) # adiciona 50
print(conta.saldo)
Quando você imprime, poderá notar que o saldo mudou de 100 para 150.
Agora, vamos sacar dinheiro.
conta.sacar(100)
print(conta.saldo)
Observe que agora o saldo é 50. Vamos tentar sacar mais 100 para ver o que acontece.
conta.sacar(100)

Ai está o erro, e mostra que não sacou nada. Se checar o saldo novamente, verá que ainda tem 50.
Conclusão
Então, aprendemos hoje como usar POO. Podemos aplicar esse método para vários dos nossos códigos. Se é algo que fazemos repetidamente, poderemos reutilizar no futuro.
Se você não entendeu completamente como fazer isso, não se preocupe. Leva tempo para entender os detalhes. O ideal é você praticar. Quanto mais pratica, melhor ficará nisso.
No futuro trabalharemos bastante com isso.
Comentários (0)
Seja o primeiro a comentar!
Deixe um comentário