Ce sunt metaclasele în Python și care este un caz real de utilizare pentru una
Un tutorial Python care explică ce sunt metaclasele și dă un caz real de utilizare pentru una. Arată că însele clasele sunt obiecte al căror tip este type, că o instrucțiune class este în mare parte zahăr sintactic pentru apelarea lui type cu un nume, baze și un spațiu de nume, și că o metaclasă este orice obiect apelabil pus în locul lui type la acel pas, deci codul ei rulează o dată per definiție de clasă, nu per instanță. Exemple rulabile cu ieșire reală construiesc o clasă funcțională apelând direct type, implementează o metaclasă al cărei init înregistrează fiecare subclasă într-un registru de pluginuri, fără decorator și fără vreun apel manual, și resping la import o clasă care omite un atribut necesar. Aceeași validare este apoi scrisă cu init_subclass, ca să arate cârligul modern, mai simplu. Acoperă și conflictele de metaclase, prepare, ABCMeta și de ce metaclasele nu fac nimic pentru instanțe.
Comments