Saltar a contenido

2. ¿Qué es un método dunder?

En programación orientada a objetos, los métodos dunder o métodos mágicos son funciones especiales que permiten definir comportamientos específicos para las clases. Estos métodos se llaman “mágicos” porque su nombre comienza y termina con dos guiones bajos (__).

TIP

Los métodos mágicos son una herramienta poderosa que permite definir comportamientos específicos para las clases en Python. Utilizarlos de forma adecuada puede hacer que nuestro código sea más fácil de entender y mantener.


2.1. Tipos de métodos dunder:

  • __init__: Se utiliza para inicializar objetos y es invocado automáticamente cuando se crea una instancia de la clase.
  • __str__: Se utiliza para representar el objeto en forma de cadena de texto.
  • __len__: Permite determinar la longitud de un objeto.

Existen muchos otros métodos mágicos que pueden ser útiles, como __add__ (para sumar objetos), __eq__ (para comparar igualdad), __lt__ (para comparar menor que), entre otros. Sin embargo, es importante tener en cuenta que no siempre es necesario utilizar estos métodos y que su uso variará dependiendo de cada caso específico.


  • Ejemplo __init__:

    class Persona:
        def __init__(self, nombre):
            self.nombre = nombre
    
    p = Persona('Juan')
    print(p.nombre)
    

  • Ejemplo __init__ con __str_:

    class Persona:
        def __init__(self, nombre):
            self.nombre = nombre
    
        def __str__(self):
            return f'Mi nombre es {self.nombre}'
    
    p = Persona('Juan')
    print(p)
    

  • Ejemplo __init__ con __len__:

    class Lista:
        def __init__(self, elementos):
            self.elementos = elementos
    
        def __len__(self):
            return len(self.elementos)
    
    l = Lista([1,2,3,4,5])
    print(len(l)) # Imprime 5
    

IMPORTANTE

El primer ejemplo y el segundo ejemplo tienen el mismo resultado, lo que hace el método dunder __str__ es convertir el objeto en una cadena de texto.


2.2. ¿Qué método dunder se ejecuta automáticamente?

El método __init__, es un método especial que se ejecuta automáticamente al invocar la clase e inicializara los atributos del objeto que le ayamos creado. Es decir, es imposible de olvidarse llamarlo ya que se llamará automáticamente.

IMPORTANTE

El método __init__ es el primer método que se ejecuta dentro de una clase.


📝 Características:

  • El método __init__ no puede retornar return datos, no devuelve nada.
  • El método __init__ puede recibir parámetros que se utilizan para inicializar atributos de forma automática.
  • El método __init__ es un constructor de instancias.
  • El método __init__ es un método opcional, de todos modos es muy común declararlo.