Метаклассы в Python — это классы, которые определяют поведение других классов. Они позволяют изменять или расширять логику создания классов, добавляя к ним атрибуты или методы. Метаклассы чаще всего используются для создания сложных API или DSL (языков предметной области).
➡️ Пример:
# Определение метакласса
class MyMeta(type):
def __new__(cls, name, bases, dct):
dct['custom_method'] = lambda self: f"Метод добавлен через {cls.__name__}"
return super().__new__(cls, name, bases, dct)
# Используем метакласс для создания класса
class MyClass(metaclass=MyMeta):
pass
# Пример использования
obj = MyClass()
print(obj.custom_method()) # Метод добавлен через MyMeta
🗣️ В этом примере метакласс MyMeta добавляет метод custom_method ко всем классам, которые его используют. Метаклассы дают мощный инструмент для динамического создания и модификации классов.
🖥 Подробнее тут