Вопросы, которые могут задать на собеседовании Senior Python Developer.
Проверьте себя без помощи поисковиков!
❓Что такое метаклассы (metaclasses) и зачем они нужны?
Пример кода:
class Meta(type):
def __new__(cls, name, bases, dct):
dct['custom_attr'] = 42
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
print(MyClass.custom_attr) # Вывод: 42
❗️Метаклассы — это классы, которые создают другие классы. По умолчанию все классы в Python создаются с помощью метакласса type. Метаклассы позволяют изменять поведение создания классов, например, добавлять методы или атрибуты, проверять соблюдение определённых правил. Пример использования — создание ORM или автоматическая регистрация классов.
Ссылка на документацию по метаклассам
