Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

🐍 Python OOP Cheat Sheet

Uma referência rápida para tudo que você aprendeu na quest Python Basics: Object-Oriented Programming.


1. Classes e Objetos

Definindo uma Classe

class Person:
    def __init__(self, name, age):
        self.name = name      # Atributo público
        self.age = age        # Atributo público

    def greet(self):
        print(f"Hello, my name is {self.name} and I am {self.age} years old.")

Criando um Objeto

p1 = Person("John", 30)
p1.greet()   # Hello, my name is John and I am 30 years old.

2. Atributos e Métodos

  • Atributos = variáveis que pertencem a um objeto (self.attribute)
  • Métodos = funções que pertencem a um objeto (def method(self):)

Acessando:

print(p1.name)   # Atributo
p1.greet()       # Método

3. Herança

Herança Básica

class Animal:
    def __init__(self, name):
        self.name = name

    def sound(self):
        print("Some generic sound")

class Dog(Animal):
    def sound(self):
        print("Woof woof!")

dog = Dog("Rex")
dog.sound()  # Woof woof!

4. super()

Chamando o Construtor da Classe Pai

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name)   # Chama o __init__ de Animal
        self.breed = breed

5. Sobrescrita de Método

Classes filhas podem substituir métodos da classe pai:

class Cat(Animal):
    def sound(self):
        print("Meow!")

6. Atributos e Métodos Privados

Marcar como Privado com __

class Person:
    def __init__(self, name, age):
        self.name = name
        self.__age = age  # Atributo privado

    def __print_age(self):  # Método privado
        print(self.__age)

    def show_info(self):
        print(self.name)
        self.__print_age()

Tentar acessar membros privados diretamente falhará:

p = Person("Alice", 25)
p.__age         # ❌ AttributeError
p._Person__age  # ✅ Funciona, mas não recomendado

7. Termos Chave de POO

Termo Significado
Class Modelo para objetos.
Object Instância de uma classe com seus próprios dados.
Attribute Variável dentro de um objeto.
Method Função dentro de uma classe.
Constructor Método especial __init__ chamado ao criar um objeto.
Inheritance Mecanismo para reutilizar código de outra classe.
Overriding Redefinição de um método da classe pai.
super() Chama métodos da classe pai.
Private Prefixado com __ para indicar uso interno apenas.

8. Melhores Práticas Rápidas

  • Use PascalCase para nomes de classes: MyClass
  • Use self para referir-se ao objeto atual
  • Mantenha métodos focados em uma tarefa
  • Use membros privados para detalhes internos
  • Chame super().__init__() se sobrescrever __init__ em uma classe filha
  • Prefira composição ou herança com sabedoria — não herde apenas por herdar

📌 Lembrete: POO é pensar em substantivos (coisas) e seus comportamentos. Modele conceitos do mundo real, mantenha o código organizado e reutilize sempre que possível.