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!
Метаклассы полезны для создания фреймворков и библиотек, где требуется динамическое поведение классов.