
Register Classes in Python
Alt sınıfları otomatik kayıt altına almanın üç yolu: metaclass __new__, __init_subclass__ ve class decorator. Hangi durum için hangisi daha uygun?
Python / Metaclass
14 yazı

Alt sınıfları otomatik kayıt altına almanın üç yolu: metaclass __new__, __init_subclass__ ve class decorator. Hangi durum için hangisi daha uygun?

Metaclass ile dataclass benzeri bir yapı: type annotation'lardan otomatik __slots__ türetme ve __call__'da çalışma zamanı tip doğrulama.

Metaclass'ın __prepare__ metoduyla sınıf gövdesindeki her atamayı otomatik olarak kayıt altına alın — özelleştirilmiş namespace'in gücünü keşfedin.

defineif kütüphanesinin implementasyonu: __prepare__ ile özelleştirilmiş namespace, sınıf oluşturulurken boolean koşula göre metodları sessizce tanımlar ya da atlar.

class Example: ... yazmak ile type('Example', (), {...}) çağırmak tamamen aynı sonucu verir. Python class anahtar kelimesini sahne arkasında type() çağrısına dönüştürür.