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

Una referencia rápida para todo lo que has aprendido en la misión Python Basics: Object-Oriented Programming.


1. Clases y Objetos

Definiendo una Clase

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.")

Creando un Objeto

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

2. Atributos y Métodos

  • Atributos = variables que pertenecen a un objeto (self.attribute)
  • Métodos = funciones que pertenecen a un objeto (def method(self):)

Accediendo:

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

3. Herencia

Herencia 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()

Llamando al Constructor del Padre

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

5. Sobrescritura de Métodos

Las clases hijas pueden reemplazar métodos de la clase padre:

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

6. Atributos y Métodos Privados

Marca como Privado con __

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()

Acceder a miembros privados directamente fallará:

p = Person("Alice", 25)
p.__age         # ❌ AttributeError
p._Person__age  # ✅ Funciona, pero no recomendado

7. Términos Clave de OOP

Término Significado
Class Plano para objetos.
Object Instancia de una clase con sus propios datos.
Attribute Variable dentro de un objeto.
Method Función dentro de una clase.
Constructor Método especial __init__ llamado al crear un objeto.
Inheritance Mecanismo para reutilizar código de otra clase.
Overriding Redefinir un método de una clase padre.
super() Llama métodos de la clase padre.
Private Prefijado con __ para indicar uso interno solamente.

8. Buenas Prácticas Rápidas

  • Usa PascalCase para nombres de clases: MyClass
  • Usa self para referirte al objeto actual
  • Mantén los métodos enfocados en una sola tarea
  • Usa miembros privados para detalles internos
  • Llama a super().__init__() si sobrescribes __init__ en una clase hija
  • Prefiere composición o herencia sabiamente — no heredes solo por heredar

📌 Recuerda: OOP se trata de pensar en sustantivos (cosas) y sus comportamientos. Modela conceptos del mundo real, mantiene el código organizado y reutiliza cuando sea posible.