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.
Si quieres aprender más sobre el Constructores
consulta el Curso de Programación Orientada a Objetos leer más
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("Luis", 30)
persona2 = Persona("María", 25)
# Acceso a los atributos de las instancias
print(persona1.nombre, persona1.edad) # Salida: Luis 30
print(persona2.nombre, persona2.edad) # Salida: María 25
En este ejemplo,
__init__(self, nombre, edad)
es el constructor de la clasePersona
- Cuando se crea una nueva instancia (
persona1
ypersona2
) - Python automáticamente llama a
__init__()
y pasa los argumentosnombre
yedad
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.