Sobes.tech
Junior — Middle
88

Erklären Sie, was eine Metaklasse im Kontext der objektorientierten Programmierung ist und wie sie verwendet wird.

Unternehmen wurden gefragt
СБЕР Бизнес
МТСМТС
Оптимакрос
РунитиРунити
БилайнБилайн

Antwort von AI

sobes.tech KI

Метакласс в 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 и других инструментов, где нужно контролировать структуру классов.