Sobes.tech
Junior — Middle

Explicați conceptul de metaclasa și rolul său în definirea claselor în Python

sobes.tech AI

Răspuns de la AI

În Python, o metaclasa este o clasă care creează alte clase. Pe scurt, o clasă este un obiect, iar o metaclasa este "o clasă pentru clase".

În mod implicit, toate clasele în Python sunt create folosind metaclasa type. Metaclasa determină modul exact în care este creată clasa, ce atribute și metode va avea.

Rolul metaclasei:

  • Gestionarea procesului de creare a clasei (de exemplu, adăugarea automată a metodelor sau verificarea atributelor).
  • Permite modificarea comportamentului claselor în timpul definirii lor.

Exemplu de utilizare a unei metaclase:

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

class MyClass(metaclass=Meta):
    pass

obj = MyClass()
print(obj.greet())  # Va afișa: Salut de la {name}!

Aici, metaclasa adaugă metoda greet tuturor claselor care o utilizează.