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.