Sobes.tech
Junior — Middle

Explica el concepto de metaclase y su papel en la definición de clases en Python

sobes.tech AI

Respuesta de la IA

En Python, una metaclase es una clase que crea otras clases. En términos simples, una clase es un objeto y una metaclase es "una clase para clases".

Por defecto, todas las clases en Python se crean usando la metaclase type. La metaclase define cómo se crea exactamente la clase, qué atributos y métodos tendrá.

El papel de la metaclase:

  • Gestionar el proceso de creación de la clase (por ejemplo, agregar métodos automáticamente o verificar atributos).
  • Permitir modificar el comportamiento de las clases en el momento de su definición.

Ejemplo de uso de una metaclase:

class Meta(type):
    def __new__(cls, name, bases, dct):
        dct['greet'] = lambda self: f"¡Hola desde {name}!"
        return super().__new__(cls, name, bases, dct)

class MyClass(metaclass=Meta):
    pass

obj = MyClass()
print(obj.greet())  # Imprimirá: ¡Hola desde MyClass!

Aquí, la metaclase añade el método greet a todas las clases que la utilizan.