O Que Você Vai Aprender
Nesta aula, você explorará os métodos, que são as "ações" ou "comportamentos" que os objetos podem realizar. Entenderá como definir esses métodos dentro de uma classe e a importância fundamental do parâmetro `self`, que permite que os métodos acessem os atributos e outros métodos do próprio objeto.
🚀 Métodos de Instância
Compreender as funções que definem o comportamento dos objetos.
🔍 O Parâmetro `self`
Entender a referência ao próprio objeto dentro de um método.
Métodos de Instância: O Comportamento do Objeto
Enquanto os atributos de instância representam o "estado" ou as "características" de um objeto, os métodos de instância representam o "comportamento" ou as "ações" que um objeto pode realizar. Eles são funções definidas dentro de uma classe.
Definindo e Chamando um Método
Métodos são definidos como funções normais dentro da classe, mas sempre recebem `self` como primeiro parâmetro. Para chamá-los, você usa a notação de ponto (`.`) no objeto.
class Cachorro:
def __init__(self, nome, raca):
self.nome = nome
self.raca = raca
def latir(self): # Método de instância
print(f"{self.nome} da raça {self.raca} está latindo: Au! Au!")
# Criando um objeto
meu_cachorro = Cachorro("Buddy", "Golden Retriever")
# Chamando o método
meu_cachorro.latir() # Saída: Buddy da raça Golden Retriever está latindo: Au! Au!
Simulador: Chamando Métodos de Carro
Crie um carro e chame o método `acelerar()` para ver seu comportamento. (Classe `CarroSim` já definida internamente).
O Parâmetro `self`: A Referência ao Próprio Objeto
Em Python, todo método de instância deve ter `self` como seu primeiro parâmetro. `self` é uma convenção (poderia ser qualquer outro nome, mas `self` é universalmente aceito e esperado) que se refere à própria instância do objeto que está chamando o método. É através de `self` que um método pode acessar os atributos e outros métodos daquele objeto específico.
Como `self` Funciona
class Pessoa:
def __init__(self, nome, idade):
self.nome = nome
self.idade = idade
def apresentar(self): # 'self' permite acessar 'self.nome' e 'self.idade'
print(f"Olá, meu nome é {self.nome} e eu tenho {self.idade} anos.")
p1 = Pessoa("Ana", 30)
p1.apresentar() # Quando 'apresentar()' é chamado, Python passa 'p1' como 'self'
`self` é crucial porque sem ele, o método não saberia a qual objeto ele pertence para acessar seus atributos únicos.
Simulador: `self` em Ação
Crie um objeto `Animal` e observe como o método usa `self` para imprimir os atributos específicos daquele animal.
Desafios para Continuar
Agora que você entendeu o comportamento dos objetos através de métodos e o papel de `self`, é hora de praticar! Resolva estes problemas no seu ambiente de desenvolvimento Python para solidificar seu aprendizado.
-
✓
Adicione um Método `depositar()` à Classe `ContaBancaria`
Considere a classe `ContaBancaria` (se você a criou em aulas anteriores, ou crie uma nova com um atributo `saldo`). Adicione um método `depositar(valor)` que aumente o `saldo` do objeto pelo `valor` fornecido e imprima o novo saldo.
-
✓
Crie e Use uma `Classe Livro` com Métodos
Defina uma classe `Livro` com atributos `titulo` e `autor` (inicializados no `__init__`). Adicione os seguintes métodos:
- `detalhes()`: Que imprima "Título: [titulo], Autor: [autor]".
- `esta_disponivel()`: Que retorne `True` (simulando que está sempre disponível por enquanto).
Crie um objeto `Livro` e chame ambos os métodos.