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.