🚀 Capítulo 10: Construindo a Armadura

NOTE

Este capítulo utiliza a temática de Tony Stark para explicar a Programação Orientada a Objetos (POO) em Python. Aprenda a criar os seus próprios moldes de objetos!


🎯 Objetivo da Aula

Compreender os conceitos básicos de Programação Orientada a Objetos (POO) em Python: o que são Classes e Objetos, como criar o método construtor __init__ e como usar a palavra-chave self.

🏢 O Cenário Prático (Seu Desafio)

Tony Stark não constrói cada armadura do zero soldando peça por peça toda vez. Ele cria um projeto (um molde digital) no computador do que é uma armadura (ela tem cor, nível de energia e sabe voar). A partir desse projeto único, ele pode “materializar” várias armaduras reais (a Mark 1, a Mark 2, etc.).

Na programação:

  • O projeto digital é a Classe.
  • A armadura física e real que vai para a batalha é o Objeto (ou Instância).
  • Seu desafio é criar o molde da armadura do Homem de Ferro!
graph TD
    A[Classe: Molde da Armadura] -->|Gera| B[Objeto: Mark I]
    A -->|Gera| C[Objeto: Mark II]

🧠 Fundamentos: A Teoria Traduzida

🏗️ 1. O que é uma Classe?

É o molde. Usamos a palavra class para criar.

class Armadura:
    pass  # pass serve apenas para o Python não dar erro de código vazio

🔋 2. O Construtor (__init__):

É a função especial que roda automaticamente assim que a armadura é criada. Serve para dar os valores iniciais (atributos) para ela.

  • O self representa a própria armadura que está sendo criada naquele momento!
class Armadura:
    def __init__(self, modelo, cor):
        self.modelo = modelo  # Atributo
        self.cor = cor  # Atributo
        self.energia = 100  # Começa sempre com 100

🚀 3. Criando o Objeto:

mark1 = Armadura("Mark I", "Cinza")
mark2 = Armadura("Mark II", "Prateada")
 
print(mark1.modelo)  # Imprime: Mark I
print(mark2.modelo)  # Imprime: Mark II

📖 Exemplo Guiado: Adicionando Habilidades

As funções criadas dentro de uma classe são chamadas de Métodos (as ações que o objeto sabe fazer). Elas também precisam receber o self como primeiro parâmetro!

class Armadura:
    def __init__(self, modelo):
        self.modelo = modelo
        self.energia = 100
 
    def atirar(self):
        if self.energia >= 10:
            self.energia -= 10
            print(f"{self.modelo} atirou laser! Energia atual: {self.energia}")
        else:
            print("Energia insuficiente!")
 
 
# Testando
minha_armadura = Armadura("Mark III")
minha_armadura.atirar()

🛠️ Prática Obrigatória 1: Criando a Classe

  1. Crie uma classe chamada Heroi que tenha um método construtor __init__ que receba nome e poder e salve-os em atributos com o mesmo nome.

🛠️ Prática Obrigatória 2: Criando o Objeto

  1. Como você criaria um objeto a partir da classe Heroi acima, passando o nome "Thor" e o poder "Trovão", guardando na variável vingador?

📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

Neste curso, você entregará suas atividades enviando o código para o seu repositório no GitHub usando o aplicativo GitHub Desktop. Siga o passo a passo detalhado:

  1. Verifique a estrutura: Certifique-se de que sua estrutura de pastas final está idêntica à mostrada abaixo.
  2. Abra o GitHub Desktop: Certifique-se de que o repositório do seu curso está selecionado no canto superior esquerdo.
  3. Visualize as alterações: Na aba Changes (à esquerda), você verá todos os arquivos que criou ou modificou nesta aula.
  4. Faça o Commit:
    • No campo Summary (na parte inferior esquerda), digite uma mensagem curta descrevendo o que fez, ex: Finaliza atividades do Capítulo.
    • Clique no botão azul Commit to main (ou o nome da sua branch).
  5. Envie para a Nuvem (Push): No topo da tela, clique no botão Push origin. Isso enviará seu código do seu computador para o seu perfil no GitHub.
  6. ⚠️ IMPORTANTE (Repositório Público): Para que o professor consiga corrigir, o seu repositório no GitHub DEVE SER PÚBLICO. Repositórios privados não podem ser visualizados por quem não foi convidado.
  7. Como entregar no Microsoft Teams:
    • Copie o link do seu repositório no GitHub (ex: https://github.com/seu-usuario/seu-repositorio).
    • Abra a tarefa correspondente no Microsoft Teams.
    • Clique no botão Adicionar trabalho (ou Add work).
    • Selecione a opção Link no menu lateral.
    • Cole o link do GitHub no campo “Endereço Web” e digite um texto (ex: Meu Repositório) no campo “Texto a ser exibido”.
    • Clique em Anexar.
    • MUITO IMPORTANTE: Clique no botão Entregar (ou Turn in) no canto superior direito para concluir o envio!

📂 Estrutura de Pastas

spec_backend_com_python_e_fastapi/
├── capitulos/
│   └── capitulo_10_stark.md

💡 Checkpoint de Lógica

Em Python, métodos que começam e terminam com dois underlines (como __init__) são chamados de Métodos Mágicos ou Dunder Methods. Eles têm comportamentos especiais no sistema!

🔥 Desafio de Fixação (Opcional)

Pesquise para que serve o método mágico __str__ em uma classe Python.

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

class Heroi:
    def __init__(self, nome, poder):
        self.nome = nome
        self.poder = poder

Gabarito da Prática 2:

vingador = Heroi("Thor", "Trovão")

Capitulo Anterior | Proximo Capitulo