O Que Você Vai Aprender
Nesta aula, você entenderá como os objetos mantêm seu "estado" através dos atributos de instância. Aprenderá sobre o método especial `__init__` (o construtor), que é crucial para inicializar esses atributos quando um novo objeto é criado, garantindo que cada objeto comece com suas características definidas.
📊 Atributos de Instância
Compreender as características individuais que cada objeto possui.
🏗️ O Construtor `__init__`
Aprender como o método `__init__` é usado para inicializar atributos ao criar um objeto.
Atributos de Instância: O Estado do Objeto
Os atributos de instância são variáveis que pertencem a um objeto específico (uma instância de uma classe). Eles representam as características ou dados que cada objeto individual possui, e que podem ser diferentes de um objeto para outro, mesmo que sejam da mesma classe.
Exemplo: Diferentes Carros da Mesma Classe
Imagine uma `Classe Carro`. Cada carro que você cria a partir dessa classe (cada objeto) pode ter uma cor, modelo e ano diferentes. `cor`, `modelo` e `ano` seriam atributos de instância.
# Simulação em Python (conceito)
class Carro:
def __init__(self, cor, modelo, ano):
self.cor = cor
self.modelo = modelo
self.ano = ano
carro1 = Carro("vermelho", "Sedan", 2022)
carro2 = Carro("azul", "Hatch", 2020)
print(f"Carro 1: Cor {carro1.cor}, Modelo {carro1.modelo}")
print(f"Carro 2: Cor {carro2.cor}, Modelo {carro2.modelo}")
Simulador: Criando Carros com Atributos
Defina a cor, modelo e ano para criar um objeto `Carro` e ver seus atributos.
O Construtor (`__init__`): Inicializando Atributos
O método especial `__init__` (lê-se "init") é o construtor em Python. Ele é automaticamente chamado toda vez que um novo objeto de uma classe é criado (instanciado). É o lugar ideal para inicializar os atributos de instância do objeto.
Estrutura do `__init__`
O primeiro parâmetro de qualquer método de instância (incluindo `__init__`) deve ser `self`, que é uma referência ao próprio objeto que está sendo criado. Os parâmetros seguintes são os valores que você deseja passar para inicializar os atributos.
class Pessoa:
def __init__(self, nome, idade):
self.nome = nome # Atributo 'nome'
self.idade = idade # Atributo 'idade'
p1 = Pessoa("Ana", 30) # Quando Pessoa() é chamado, __init__ é executado
print(f"Nome da Pessoa: {p1.nome}") # Acessando o atributo
print(f"Idade da Pessoa: {p1.idade}") # Acessando o atributo
Simulador: Criando Pessoas com `__init__`
Crie instâncias da classe `Pessoa` (usando o `__init__` simulado) e veja seus atributos sendo inicializados e acessados.
Desafios para Continuar
Agora que você entende atributos e o construtor `__init__`, é hora de praticar! Resolva estes problemas no seu ambiente de desenvolvimento Python para solidificar seu aprendizado.
-
✓
Crie uma Classe `Produto`
Defina uma classe `Produto` com um construtor `__init__` que inicialize os atributos `nome`, `preco` e `quantidade`.
-
✓
Instancie e Acesse Atributos de `Produto`
Crie dois objetos diferentes da classe `Produto`:
- Um para "Notebook Gamer" com preço 5500.00 e quantidade 10.
- Outro para "Mouse sem fio" com preço 80.00 e quantidade 50.
Em seguida, imprima o `nome` e o `preco` de cada um desses produtos.