Agora que você já entende o que é um objeto e que tudo em Python vem de uma classe, chegou a hora de aprender a criar as suas próprias classes.
Este é o passo mais importante para entrar de verdade na Programação Orientada a Objetos (POO).
Hoje você vai aprender:
- O que é uma classe criada por você
- O que é o método especial
__init__ - Como criar atributos
- Como criar métodos
- Como criar vários objetos diferentes da mesma classe
- Exemplos práticos e simples
Vamos começar!
Como criar uma classe em Python
Em Python, uma classe é criada com a palavra-chave class:
class Pessoa:
pass
O pass significa “não tem nada aqui ainda”.
Vamos melhorar isso.
O método __init__ — o Construtor
Toda vez que você cria um objeto, Python chama automaticamente um método especial chamado:
__init__
Ele é responsável por inicializar o objeto.
Exemplo:
class Pessoa:
def __init__(self, nome, idade):
self.nome = nome
self.idade = idade
O que está acontecendo aqui?
-
self→ representa o próprio objeto -
self.nome→ cria um atributo chamadonome -
self.idade→ cria um atributo chamadoidade
Criando um Objeto (Instância)
p1 = Pessoa("João", 25)
p2 = Pessoa("Maria", 30)
print(p1.nome) # João
print(p2.idade) # 30
Cada objeto tem seus próprios atributos:
p1.nome = "João"
p2.nome = "Maria"
Ou seja, objetos diferentes → valores diferentes.
Criando métodos dentro da classe
Métodos são funções dentro da classe que operam sobre o objeto.
Vamos adicionar um:
class Pessoa:
def __init__(self, nome, idade):
self.nome = nome
self.idade = idade
def apresentar(self):
print(f"Olá! Meu nome é {self.nome} e tenho {self.idade} anos.")
Agora:
p1 = Pessoa("João", 25) p1.apresentar()
Saída:
Olá! Meu nome é João e tenho 25 anos.
Exemplo muito prático: Classe Conta Bancária
Este exemplo é extremamente útil no mundo real.
class ContaBancaria:
def __init__(self, titular, saldo=0):
self.titular = titular
self.saldo = saldo
def depositar(self, valor):
self.saldo += valor
print(f"Depósito de {valor} realizado!")
def sacar(self, valor):
if valor <= self.saldo:
self.saldo -= valor
print(f"Saque de {valor} realizado!")
else:
print("Saldo insuficiente.")
def mostrar_saldo(self):
print(f"Saldo atual: {self.saldo}")
Uso:
conta = ContaBancaria("João")
conta.depositar(100)
conta.mostrar_saldo()
conta.sacar(30)
conta.mostrar_saldo()
Criando vários objetos
c1 = ContaBancaria("João", 500)
c2 = ContaBancaria("Maria", 1500)
c1.sacar(100)
c2.depositar(200)
Objetos independentes, comportamentos independentes.
Atributos dinâmicos
Você pode adicionar atributos novos a um objeto mesmo depois de criado:
p1 = Pessoa("Carlos", 40)
p1.altura = 1.80
print(p1.altura) # 1.80
Mas cuidado: isso só vale para aquele objeto, não para a classe inteira.
Erros comuns (e como evitar)
Esquecer o self no método
def apresentar():
...
ERRO!
Python não sabe a qual objeto pertence.
✔ Correto:
def apresentar(self):
...
Achar que self é uma palavra reservada
Não é!
Você pode renomear, mas nunca faça isso:
def __init__(banana, nome):
banana.nome = nome
Funciona… mas é confuso.
Use sempre self.
Exercícios para fixar
🟦 Exercício 1
Crie uma classe Carro com:
- marca
- modelo
- ano
E um método descrever() que imprime tudo bonitinho.
🟩 Exercício 2
Crie uma classe Aluno com um método calcular_media() que recebe 3 notas e retorna a média.
🟨 Exercício 3
Crie 3 objetos de uma classe “Animal” e dê a cada um:
- nome
- espécie
- método falar()
Exemplo:
meu_cachorro.falar() # "Au au!"
Copyright notice: Unless otherwise stated, all articles are original to this website. Please cite the source when sharing.
Article link: http://usandopy.com/programacao-orientada-a-objetos/criando-suas-proprias-classes-em-python/
joao [Administrador]
1 andar - 2 weeks, 6 days ago
Obrigado pelo conteudo