Back to questions
Ростелеком
Junior — Middle
82
Объясните концепцию метакласса и его роль в определении классов в Python
Companies where asked
Answer from AI
sobes.tech AI
Метакласс в Python — это класс, который создает другие классы. Проще говоря, класс — это объект, а метакласс — это "класс для классов".
По умолчанию все классы в Python создаются с помощью метакласса type. Метакласс определяет, как именно создается класс, какие атрибуты и методы у него будут.
Роль метакласса:
- Управлять процессом создания класса (например, автоматически добавлять методы или проверять атрибуты).
- Позволять изменять поведение классов на этапе их определения.
Пример использования метакласса:
class Meta(type):
def __new__(cls, name, bases, dct):
dct['greet'] = lambda self: f"Hello from {name}!"
return super().__new__(cls, name, bases, dct)
class MyClass(metaclass=Meta):
pass
obj = MyClass()
print(obj.greet()) # Выведет: Hello from MyClass!
Здесь метакласс добавляет метод greet ко всем классам, которые его используют.