Menu
CoddyTech

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__ recibe 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 que estableció 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

# Crea gatos
fluffy = Cat("Fluffy", 3)
whiskers = Cat("Whiskers")  # age tiene 1 como valor predeterminado

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 los atributos manualmente después de crear el objeto.

challenge icon

Desafío

Fácil

Se te proporcionan archivos 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 se 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 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 de libro 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é definido correctamente 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