Sobes.tech
Junior — Middle
90

Explique qué es una metaclase en el contexto de la programación orientada a objetos y cómo se utiliza.

Empresas donde se preguntó
СБЕР Бизнес
МТСМТС
Оптимакрос
РунитиРунити
БилайнБилайн

Respuesta de la IA

sobes.tech AI

Метакласс в Python — это класс, который создаёт другие классы. Проще говоря, класс — это объект, а метакласс — это «класс для классов». По умолчанию все классы создаются с помощью метакласса type.

Метаклассы позволяют контролировать процесс создания классов: можно изменять атрибуты, добавлять методы или проверять структуру класса во время его определения.

Пример использования метакласса для автоматического добавления метода в класс:

class AutoMethodMeta(type):
    def __new__(cls, name, bases, attrs):
        attrs['hello'] = lambda self: f"Hello from {name}!"
        return super().__new__(cls, name, bases, attrs)

class MyClass(metaclass=AutoMethodMeta):
    pass

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

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