Métodos mágicos (__str__, __repr__, etc.)
Profundice en los métodos especiales de Python para personalizar el comportamiento de los objetos.
Métodos mágicos (__str__, __repr__, etc.) es una lección gratuita de Learn AI with Python en CoddyKit. Esta es la lección 6 de 6. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Learn AI with Python, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Learn AI with Python incluye 6 lecciones en total.
Introducción a los métodos mágicos
Introducción a los métodos mágicos
Los métodos mágicos, también conocidos como métodos dunder (abreviatura de «double underscore»), son métodos especiales de Python que permiten definir cómo se comportan los objetos en situaciones específicas.
En esta lección, aprenderá a utilizar métodos mágicos comunes como __str__, __repr__ y otros.

¿Qué son los métodos mágicos?
¿Qué son los métodos mágicos?
Los métodos mágicos son métodos predefinidos de Python que se llaman automáticamente cuando se realizan operaciones específicas sobre objetos. Se identifican mediante sus dobles guiones bajos, como __init__ o __str__.
El método __init__
El método __init__
El método __init__ es un constructor que inicializa un objeto nuevo. Se llama automáticamente cuando se crea un objeto:
# Using the __init__ method to initialize attributes
class Person:
def __init__(self, name, age):
self.name = name # Initialize the name attribute
self.age = age # Initialize the age attribute
# Creating an instance of Person
person = Person("Alice", 30)
print(person.name, person.age) # Outputs: Alice 30El método __str__
El método __str__
El método __str__ define la representación en forma de cadena de un objeto cuando se llama a print():
# Defining the __str__ method
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Name: {self.name}, Age: {self.age}" # String representation
person = Person("Alice", 30)
print(person) # Outputs: Name: Alice, Age: 30El método __repr__
El método __repr__
El método __repr__ proporciona una representación oficial en forma de cadena de un objeto, que suele utilizarse para la depuración:
# Defining the __repr__ method
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person('{self.name}', {self.age})" # Debug-friendly representation
person = Person("Alice", 30)
print(repr(person)) # Outputs: Person('Alice', 30)Sobrecarga de operadores con métodos mágicos
Sobrecarga de operadores con métodos mágicos
Puede utilizar métodos mágicos para personalizar el comportamiento de operadores como + o ==:
# Overloading the + operator with __add__
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y) # Adding two points
def __str__(self):
return f"({self.x}, {self.y})"
point1 = Point(1, 2)
point2 = Point(3, 4)
result = point1 + point2 # Calls __add__
print(result) # Outputs: (4, 6)Métodos mágicos de uso común
Métodos mágicos de uso común
Estos son algunos métodos mágicos de uso común:
__len__: define el comportamiento de la funciónlen().__getitem__: permite utilizar índices como en una lista o un diccionario.__eq__: personaliza la comparación de igualdad mediante==.
Uso de __len__ y __getitem__
Uso de __len__ y __getitem__
Puede utilizar __len__ para definir la longitud de un objeto personalizado y __getitem__ para que se pueda indexar:
# Using __len__ and __getitem__ in a custom class
class CustomList:
def __init__(self, items):
self.items = items
def __len__(self):
return len(self.items) # Defines the behavior of len()
def __getitem__(self, index):
return self.items[index] # Enables indexing
custom_list = CustomList([1, 2, 3])
print(len(custom_list)) # Outputs: 3
print(custom_list[1]) # Outputs: 2Errores comunes con los métodos mágicos
Errores comunes con los métodos mágicos
Estos son algunos errores que debe evitar:
- Definir un método mágico sin respetar el comportamiento previsto.
- Utilizar la sobrecarga de operadores sin necesidad.
- Olvidar implementar los métodos mágicos necesarios en los tipos de datos personalizados.
¿Qué aprendió?
¿Qué aprendió?
En esta lección, aprendió:
- Qué son los métodos mágicos y por qué son útiles.
- Cómo utilizar métodos mágicos comunes como
__init__,__str__y__repr__. - Cómo sobrecargar operadores mediante métodos mágicos.
¡Buen trabajo! Pasemos al siguiente tema.

Preguntas frecuentes
¿La lección «Métodos mágicos (__str__, __repr__, etc.)» es gratis?
Sí — el texto completo de «Métodos mágicos (__str__, __repr__, etc.)» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Learn AI with Python, actualiza a CoddyKit PRO. El curso de Learn AI with Python incluye 6 lecciones en total.
¿Qué aprenderé en «Métodos mágicos (__str__, __repr__, etc.)»?
Profundice en los métodos especiales de Python para personalizar el comportamiento de los objetos. Practicas Learn AI with Python con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Learn AI with Python?
No se requiere experiencia previa. Learn AI with Python en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 6 de 6.
¿Cuánto tiempo toma la lección «Métodos mágicos (__str__, __repr__, etc.)»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Learn AI with Python?
Sí. Cada lección de Learn AI with Python incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Clases y objetos
- Atributos y métodos
- Herencia
- Polimorfismo
- Encapsulación y abstracción
- Métodos mágicos (__str__, __repr__, etc.)