Sobes.tech
Back to questions
Junior — Middle
67

Какие метаклассы вы использовали в своих проектах?

Answer from AI

sobes.tech AI

Метаклассы в Python — это классы, которые создают другие классы. Они позволяют контролировать процесс создания классов, например, автоматически добавлять методы или изменять атрибуты.

В своих проектах я использовал метаклассы для:

  • Автоматической регистрации классов в реестре (например, для плагинов).
  • Валидации или модификации атрибутов класса при его создании.

Пример простого метакласса, который добавляет метод hello во все создаваемые им классы:

class HelloMeta(type):
    def __new__(cls, name, bases, dct):
        def hello(self):
            print(f"Hello from {self.__class__.__name__}!")
        dct['hello'] = hello
        return super().__new__(cls, name, bases, dct)

class MyClass(metaclass=HelloMeta):
    pass

obj = MyClass()
obj.hello()  # Выведет: Hello from MyClass!

Метаклассы полезны для создания фреймворков и библиотек, где требуется динамическое поведение классов.