Menu
Coddy logo textTech

Método constructor (__init__)

Parte de la sección Programación orientada a objetos del Journey de Python de Coddy. Lección 7 de 64.

El método __init__ es un método especial que se ejecuta automáticamente cuando creas un objeto nuevo. Inicializa los atributos del objeto.

Aquí tienes un ejemplo de una clase con un constructor:

class Dog:
    def __init__(self, name, breed):
        self.name = name
        self.breed = breed

El método __init__ toma parámetros y los asigna a los atributos de la instancia usando self.

Crea objetos usando el constructor:

rex = Dog("Rex", "German Shepherd")
buddy = Dog("Buddy", "Golden Retriever")

Cuando llamas a Dog("Rex", "German Shepherd"), Python llama automáticamente a __init__ y pasa los argumentos.

Accede a los atributos establecidos por el constructor:

print(rex.name)
print(rex.breed)
print(buddy.name)
print(buddy.breed)

Salida:

Rex
German Shepherd
Buddy
Golden Retriever

También puedes tener un constructor con valores predeterminados:

class Cat:
    def __init__(self, name, age=1):
        self.name = name
        self.age = age

# Crear gatos
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers")  # age por defecto es 1

print(f"{fluffy.name} is {fluffy.age} years old")
print(f"{whiskers.name} is {whiskers.age} years old")

Salida:

Fluffy is 3 years old
Whiskers is 1 years old

Punto clave: El método __init__ garantiza que cada objeto se configure correctamente con sus datos iniciales al crearse. Te evita tener que configurar manualmente los atributos después de crear el objeto.

challenge icon

Desafío

Fácil

Se te proporcionan archivos de Python (book.py y driver.py) para implementar un sistema de gestión de libros. En este desafío, definirás una clase Book en un archivo, que se importará y utilizará en otro.

Tu tarea es:

  • Completar la clase Book en book.py con un método __init__ que inicialice los atributos title, author y pages
  • El archivo driver.py importará y utilizará tu clase Book para crear un objeto de libro para "Harry Potter" by "J.K. Rowling" with 400 pages

Sigue los comentarios detallados de TODO en book.py.

Pruébalo tú mismo

# TODO: Importa la clase Book desde book.py
# Usa este formato: from book import Book

# TODO: Crea un objeto book llamado 'my_book' con los siguientes valores:
# - title: "Harry Potter"
# - author: "J.K. Rowling"
# - pages: 400
# Ejemplo: my_book = Book("Title", "Author", pages)

# Imprime los detalles del libro
# TODO: Asegúrate de que my_book esté correctamente definido antes de que se ejecute esta línea
print(f"'{my_book.title}' by {my_book.author}, {my_book.pages} pages")
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Programación orientada a objetos

Practica por tu cuenta: Compilador de Python online