Saltar al contenido principal
Publicado el

__init__ en Python

Compartir:

Introducción

En el universo de la programación Python, entender __init__ es fundamental para quienes trabajan con la orientación a objetos. Este método especial, frecuentemente denominado constructor, es el corazón de cualquier clase y es responsable de inicializar los objetos.

Entendiendo el __init__

El Constructor de la Clase

El método __init__ se llama automáticamente cada vez que se crea un objeto de la clase. Sirve para definir los atributos del objeto o realizar cualquier inicialización necesaria.

Sintaxis y Uso

Veamos un ejemplo de una clase simple con el método __init__:

class Persona:
  def __init__(self, primerNombre, apellido, edad):
    self.primerNombre = primerNombre
    self.apellido = apellido
    self.edad = edad

En este ejemplo, __init__ inicializa tres atributos: primerNombre, apellido y edad.

Métodos Adicionales

Además de __init__, puedes definir otros métodos para ampliar la funcionalidad de la clase:

def informacion(self):
  print('Nombre:', self.primerNombre, self.apellido)
  print('Edad:', self.edad)

def verificarEntrada(self):
  if self.edad >= 18:
    print('Esta persona puede entrar al lugar porque es mayor de edad.')
  else:
    print('Esta persona no puede entrar al lugar porque es menor de edad.')

Creando Objetos

Con la clase definida, puedes crear objetos (instancias) de ella:

persona1 = Persona('Nelson', 'Silva', 28)
persona2 = Persona('Larissa', 'Fernandes', 17)

Cada objeto tendrá sus propios atributos y métodos definidos en la clase.

Demostración

Veamos cómo funcionan los métodos con los objetos creados:

persona1.informacion()
persona1.verificarEntrada()

persona2.informacion()
persona2.verificarEntrada()

Conclusión

El método __init__ es un componente esencial de la programación orientada a objetos en Python, que ofrece una forma flexible y poderosa de inicializar objetos. Comprender y utilizar correctamente este método es crucial para crear clases eficientes y significativas.

Happy coding!