Sobes.tech
Junior — Middle

Metaklass anlayışını və onun Python-da siniflərin müəyyən edilməsindəki rolunu izah edin

sobes.tech Süni İntellekt

AI-dan cavab

Python-da metaclass, digər sinifləri yaradan sinifdir. Sadə desək, sinif obyektdir və metaclass "sinflər üçün sinf"dir.

Varsayılan olaraq, Python'da bütün siniflər type metaclass istifadə edilərək yaradılır. Metaclass, sinifin necə yaradılacağını, hansı atributlar və metodların olacağını müəyyən edir.

Metaclass-in rolu:

  • Sinifin yaradılma prosesini idarə etmək (məsələn, avtomatik metodlar əlavə etmək və ya atributları yoxlamaq).
  • Siniflərin tərif mərhələsində davranışını dəyişdirməyə imkan vermək.

Metaclass istifadəsinin nümunəsi:

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

class MyClass(metaclass=Meta):
    pass

obj = MyClass()
print(obj.greet())  # Çıxış: Salam {name}!

Burada, metaclass, onu istifadə edən bütün siniflərə greet metodunu əlavə edir.