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 = breedEl 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 RetrieverTambié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 oldPunto 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.
Desafío
FácilSe 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
Bookenbook.pycon un método__init__que inicialice los atributostitle,authorypages - El archivo
driver.pyimportará y utilizará tu claseBookpara 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")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
1Fundamentos de la POO
Archivos externosIntroducción a la POOClases vs ObjetosEl parámetro selfMétodosAtributosMétodo constructor (__init__)Resumen - Calculadora simple4Herencia
Herencia básicaLa función super()Sobrescritura de métodosHerencia múltipleOrden de resolución de métodosResumen - Jerarquía de empleados7Métodos especiales
Introducción a los métodos mágicosSobrecarga de operadoresMétodos mágicos de contenedoresRepaso - Lista personalizada10Patrones de diseño Parte 1
Introducción a los patrones de diseñoPatrón SingletonPatrón FactoryPatrón ObserverPatrón Strategy2Decoradores
Introducción a los decoradoresDecorador propertyDecorador de métodos estáticosDecorador de métodos de clase5Polimorfismo
Sobreescritura de métodos revisitadaDuck TypingClases y métodos abstractosDiseño de interfacesResumen - Calculadora de figuras8Conceptos avanzados de POO
Composición vs. HerenciaMixinsMétodos estáticos y de claseDecoradores de claseGestores de contexto11Patrones de diseño, parte 2
Patrón CommandPatrón AdapterPatrón DecoratorPatrón Template MethodPatrón StatePatrón Composite3Propiedades de clase
Variables de instancia vs de claseDecoradores de propiedadesAtributos privadosResumen - Gestor de cuentas bancariasPractica por tu cuenta: Compilador de Python online