No todos los días son buenos

Aprende Python con clases, herencia, MRO, constructores, metaclases y cuándo usarlas; guía para desarrollo de software e IA en empresas.

1 sept 2025 • 5 min read • Q2BSTUDIO Team

Inteligencia-Artificial-

No todos los días son buenos y a veces celebrar antes de tiempo pasa factura. Mi agente de IA decidió saltarse el mecanismo de bloqueo en lugar de hacerlo funcionar con valores constantes. La herramienta corre con recursos limitados, así que ejecutar cualquier cosa le lleva un día entero. Me encanta este setup lento porque me obliga a trabajar también de forma manual. Lo recomiendo a quienes empiezan: dos proyectos en tándem, uno manual y otro automático pero pausado. Mientras el agente termina el bloqueo por clases, sigo investigando cómo detectar o retrotraer herencia de clases y metaclases para guiar mejor el análisis. Ni siquiera sabía que las clases tuvieran este sistema, así que hoy toca exploración a fondo.

Clases básicas. Una clase en Python es un molde para crear objetos. Definimos métodos que describen su comportamiento, por ejemplo un método speak que devuelve un sonido. Creas una instancia y llamas al método. Simple y directo.

Herencia. Una clase hija reutiliza o amplía la lógica de otra. Si no sobrescribes, se usan los métodos del padre; si sobrescribes, prevalece tu versión. Python también permite herencia múltiple. Ante métodos con el mismo nombre en varias bases, el lenguaje decide con el orden de resolución de métodos, MRO, que es determinista. Si una clase Duck hereda de Walker y Swimmer en ese orden y ambos tienen move, se usará el de Walker porque aparece primero en el MRO.

Constructores con __init__. Al instanciar Clase(...), Python llama a __init__ para inicializar el estado. Puedes encadenar constructores de la jerarquía con super, de modo que la clase hija delegue en la padre para inicializar los atributos comunes y luego añada los suyos propios, por ejemplo nombre y raza en un perro.

Metaclases. En Python todo es un objeto, incluso las clases. Si los objetos los crean las clases, quién crea las clases. La respuesta es la metaclase, que por defecto es type. Así, Animal es una instancia de type. Las metaclases permiten interceptar cómo se construyen las clases, por ejemplo sobreescribiendo __new__ para registrar, validar o modificar definiciones en el momento en que se declara la clase, no cuando se instancia.

Cuándo usar herencia y cuándo metaclases. La herencia organiza y reutiliza código entre objetos y soporta herencia múltiple guiada por el MRO. Las metaclases controlan la construcción de clases y se usan en casos avanzados, como imponer convenciones, autorregistro de plugins o añadir métodos y atributos de forma automática. En la mayoría de proyectos de negocio no necesitarás metaclases salvo que estés creando frameworks o infraestructura común.

Bajo el capó de type. Instanciar Dog(...) no es solo una llamada. Internamente ocurre type.__call__(Dog, argumentos), que a su vez invoca Dog.__new__ para asignar memoria y luego Dog.__init__ para inicializar. Por eso, al personalizar una metaclase puedes redefinir __call__ para ejecutar lógica antes de crear instancias, o __new__ para modificar la clase al declararla.

Qué hace super de verdad. super no significa el padre directo, sino el siguiente en el MRO a partir de la clase actual. En un diamante clásico con A como base, B y C heredando de A y D heredando de B y C, una cadena de super en greet recorrerá D, después B, luego C y por último A. Esta linealización evita llamadas duplicadas y mantiene un orden predecible.

Metaclases en acción. Si una clase usa metaclass igual a Meta, la creación de la clase queda interceptada por Meta y también puedes interceptar la creación de instancias redefiniendo __call__ en la metaclase. El flujo típico al instanciar es Meta.__call__, que delega en type.__call__, que llama a __new__ y después a __init__ de la clase objetivo.

Por qué parece rígido. Debes declarar metaclass explícitamente porque solo puede haber una metaclase controlando la creación de la clase. Si no declaras nada, se usa type. Dado que una metaclase hereda de type, puedes extender su lógica en __new__, __init__ o __call__ para añadir verificación, registro o instrumentación.

Analogía útil. Objetos son productos. Clases son fábricas. Metaclases son los diseñadores de fábricas. Primero el diseñador define la fábrica al declarar la clase. Luego la fábrica produce productos cada vez que instancias.

Lecciones prácticas que me llevo mientras aprendo con soporte de GPT y, a veces, consultando fragmentos con Gemini. El MRO es clave para entender herencia múltiple. Usa Clase.mro para recorrer la jerarquía de herencia. Si una base no se resuelve localmente, inspecciona los imports para ubicar la definición. Una vez tengas las definiciones, analiza las firmas de __init__ y __new__ para extraer requisitos de parámetros. Detecta metaclass como punto de entrada a la detección del tipo de clase y recuerda que solo puede declararse una.

En Q2BSTUDIO vivimos estos retos a diario creando aplicaciones a medida y software a medida que combinan buenas prácticas de diseño con productividad real. Nuestro equipo integra inteligencia artificial aplicada, agentes IA y automatización, junto a ciberseguridad, servicios cloud aws y azure, y servicios inteligencia de negocio con power bi para impulsar resultados tangibles. Si buscas una solución escalable que respete patrones sólidos como MRO, super y metaclases cuando toca, podemos ayudarte.

Si tu proyecto necesita una base sólida con foco en valor de negocio, descubre cómo abordamos el desarrollo de aplicaciones a medida aquí: software a medida y aplicaciones a medida. Y si quieres llevar tu producto al siguiente nivel con modelos y agentes listos para producción, explora nuestros servicios de inteligencia artificial e ia para empresas.

Cierro con una idea sencilla. No todos los días serán luminosos, pero incluso cuando el agente tarda y las cosas no salen a la primera, el aprendizaje profundo sobre cómo se construye el software paga dividendos. Con método, buenas herramientas y un equipo como Q2BSTUDIO, cada día suma.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.