Sobes.tech
Junior — Middle

Spiega il concetto di metaclass e il suo ruolo nella definizione delle classi in Python

sobes.tech AI

Risposta dell'AI

In Python, una metaclasse è una classe che crea altre classi. In parole semplici, una classe è un oggetto e una metaclasse è "una classe per le classi".

Per impostazione predefinita, tutte le classi in Python vengono create usando la metaclasse type. La metaclasse definisce come viene creata esattamente la classe, quali attributi e metodi avrà.

Ruolo della metaclasse:

  • Gestire il processo di creazione della classe (ad esempio, aggiungere automaticamente metodi o verificare attributi).
  • Permettere di modificare il comportamento delle classi durante la loro definizione.

Esempio di utilizzo di una metaclasse:

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

class MyClass(metaclass=Meta):
    pass

obj = MyClass()
print(obj.greet())  # Stampa: Ciao da {name}!

Qui, la metaclasse aggiunge il metodo greet a tutte le classi che la usano.