constructores-en-python

Constructores en Python

Un constructor en Python es un método especial __init__() que se llama automáticamente cuando se crea una nueva instancia de una clase.

Su función principal es inicializar los atributos de la instancia con valores predeterminados o personalizados.

Ejemplo básico de Constructor

# Definición de una clase con constructor
class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

# Creación de instancias utilizando el constructor
persona1 = Persona("Juan", 30)
persona2 = Persona("María", 25)

# Acceso a los atributos de las instancias
print(persona1.nombre, persona1.edad)  # Salida: Juan 30
print(persona2.nombre, persona2.edad)  # Salida: María 25

En este ejemplo,

  • __init__(self, nombre, edad) es el constructor de la clase Persona
  • Cuando se crea una nueva instancia (persona1 y persona2)
  • Python automáticamente llama a __init__() y pasa los argumentos nombre y edad proporcionados.

Parámetros del Constructor

El primer parámetro de __init__() es self, que representa la instancia actual de la clase. Se utiliza para acceder a los atributos y métodos de la instancia dentro del propio método y en otros métodos de la clase.

Además de self, el constructor puede aceptar cualquier número de parámetros necesarios para inicializar la instancia. Estos parámetros son proporcionados al crear la instancia.

Definición de atributos opcionales

Los constructores pueden definir atributos opcionales con valores predeterminados.

class Coche:
    def __init__(self, marca, modelo, color="negro"):
        self.marca = marca
        self.modelo = modelo
        self.color = color

# Creación de instancias
coche1 = Coche("Toyota", "Corolla")
coche2 = Coche("Tesla", "Model S", "rojo")

print(coche1.marca, coche1.modelo, coche1.color)  # Salida: Toyota Corolla negro
print(coche2.marca, coche2.modelo, coche2.color)  # Salida: Tesla Model S rojo

En este ejemplo, Coche tiene un atributo opcional color con valor predeterminado "negro". Se puede proporcionar un color diferente al crear la instancia (coche2).

Constructor predeterminado

Si no se define un constructor (__init__()), Python proporciona uno por defecto que no inicializa ningún atributo.