Uma classe em Python é um modelo ou "blueprint" a partir do qual objetos são criados. Cada objeto é uma instância dessa classe. Em termos simples, uma classe agrupa dados (atributos) e funcionalidades (métodos) que são relevantes para um determinado conceito ou entidade.
Sintaxe de Definição de uma Classe
Para definir uma classe em Python, utilizamos a palavra-chave class
seguida do nome da classe e dois pontos. Dentro da definição da classe, colocamos os métodos e atributos associados.
class NomeDaClasse:
def __init__(self, atributo1, atributo2):
self.atributo1 = atributo1
self.atributo2 = atributo2
def metodo_exemplo(self):
print(f"Este é um exemplo de método. Atributo1: {self.atributo1}")
Exemplo Prático: Classe Carro
Vamos criar um exemplo prático de uma classe Carro
que possui atributos como marca
, modelo
, e ano
, e um método para apresentar informações sobre o carro.
class Carro:
def __init__(self, marca, modelo, ano):
self.marca = marca
self.modelo = modelo
self.ano = ano
def descrever_carro(self):
print(f"Carro: {self.marca} {self.modelo}, Ano: {self.ano}")
# Instanciação de objetos da classe Carro
carro1 = Carro("Toyota", "Corolla", 2020)
carro2 = Carro("Honda", "Civic", 2018)
# Utilização do método da classe
carro1.descrever_carro()
carro2.descrever_carro()
Neste exemplo, a classe Carro
tem três atributos: marca
, modelo
, e ano
. O método descrever_carro
imprime as informações sobre o carro.
O Método __init__
O método __init__
é um método especial chamado de "construtor". Ele é executado automaticamente sempre que uma nova instância da classe é criada. Este método inicializa os atributos da instância.
class Estudante:
def __init__(self, nome, idade, curso):
self.nome = nome
self.idade = idade
self.curso = curso
Adicionando Functionalidade
Além de atributos, podemos adicionar métodos que definem o comportamento da classe. Vamos melhorar a classe Estudante
incluindo um método para apresentar uma mensagem de boas-vindas.
class Estudante:
def __init__(self, nome, idade, curso):
self.nome = nome
self.idade = idade
self.curso = curso
def boas_vindas(self):
print(f"Bem-vindo(a), {self.nome}! Felicidades nos seus estudos de {self.curso}.")
# Instanciação de um objeto da classe Estudante
estudante1 = Estudante("Ana", 20, "Engenharia Informática")
estudante1.boas_vindas()
A Importância do self
Em Python, self
é uma referência à instância atual da classe. É através de self
que podemos acessar atributos e métodos da classe dentro dos métodos.
class Animal:
def __init__(self, tipo):
self.tipo = tipo
def fazer_som(self, som):
print(f"O {self.tipo} faz '{som}'.")
# Instanciando um objeto da classe Animal
animal1 = Animal("Cão")
animal1.fazer_som("au au")
Resumo
- Uma classe é um modelo para criar objetos.
- O método
__init__
inicializa os atributos de uma instância. -
self
refere-se à instância atual da classe e é utilizado para acessar atributos e métodos. - Métodos definem comportamentos que podem ser realizados pelos objetos da classe.
Quiz
Teste os seus conhecimentos com este quiz rápido:
- O que é uma classe em Python?
- O que faz o método
__init__
numa classe? - Para que serve o parâmetro
self
nos métodos da classe? - Crie uma classe
Livro
com atributostítulo
eautor
e um método para imprimir essas informações. - Qual é a saída do seguinte código?
class Pessoa: def __init__(self, nome): self.nome = nome def cumprimentar(self): print(f"Olá, {self.nome}!") pessoa1 = Pessoa("João") pessoa1.cumprimentar()
Este capítulo forneceu uma introdução à definição de classes em Python. No próximo capítulo, aprenderemos como instanciar objetos dessas classes e explorar mais funcionalidades.