Sobes.tech
Junior — Middle
96

Nesne yönelimli programlama bağlamında metaclass nedir ve nasıl kullanılır açıklayınız.

Sorulan şirketler
СБЕР Бизнес
МТСМТС
Оптимакрос
РунитиРунити
БилайнБилайн

AI'dan gelen yanıt

sobes.tech yapay zeka

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