Метакласс — это класс класса в Python. Если обычный класс определяет поведение своих экземпляров, то метакласс определяет поведение самого класса.
Самый распространённый метакласс в Python — это type, который является метаклассом по умолчанию для всех классов. Каждый создаваемый тобой класс — это на самом деле экземпляр своего метакласса.
Ты можешь создавать свои метаклассы, наследуя type:
class MyMetaclass(type):
def __new__(mcs, name, bases, namespace):
# Настраиваем поведение создания класса
return super().__new__(mcs, name, bases, namespace)
class MyClass(metaclass=MyMetaclass):
pass
Метаклассы — это продвинутая возможность, которую нужно использовать редко. Они полезны для:
Большинство Python-разработчиков редко пишут собственные метаклассы, но понимать их важно для глубокого осознания того, как работает система классов в Python.
Метакласс type — это метакласс по умолчанию для всех классов в Python, что означает, что каждый созданный тобой класс является экземпляром type.
Новый — ещё не проверен сообществом
Вы