La programación orientada a objetos (POO) es un paradigma que modela el código a partir de "objetos" que combinan datos y comportamiento, de forma similar a como funcionan los elementos del mundo real. Una clase actúa como el molde o plantilla, y un objeto es cada instancia concreta creada a partir de ese molde.
El método __init__ es el constructor: se ejecuta automáticamente cada vez que se crea un nuevo objeto, y normalmente se usa para inicializar sus atributos. El parámetro self hace referencia al propio objeto dentro de cualquier método de la clase, y siempre debe aparecer como primer parámetro.
Código de ejemplo:
class Persona:
def __init__(self, nombre, edad):
self.nombre = nombre
self.edad = edad
def presentarse(self):
return f"Soy {self.nombre} y tengo {self.edad} años"
jose = Persona("José", 35)
print(jose.presentarse())
print(jose.nombre) # Acceso directo al atributo

.png)
.png)