В этой статье мы рассмотрим процесс инстанцирования объектов, за которым следует внутренний Python для создания объектов. Я начну с основ создания объектов, а затем мы углубимся в понимание конкретных методов, таких как __new__, __init__ и __call__. Мы также поймем Metaclass в Python, а также его роль в процессе создания объекта. Хотя это продвинутые темы, статья объясняет каждую тему шаг за шагом и с нуля, так что даже новички могут ее понять.

Обратите внимание, что эта статья написана с учетом Python3.

Оглавление

Внутреннее устройство инстанцирования объектов и метаклассов в Python

Базовый класс object в Python3

В Python3 все классы неявно наследуются от встроенного базового класса object. Класс object предоставляет некоторые распространенные методы, такие как __init__, __str__ и __new__, которые могут быть переопределены дочерним классом. Рассмотрим код ниже, например:

class Human:
    pass

В приведенном выше коде класс Human не определяет никаких атрибутов или методов. Однако по умолчанию класс Human наследует базовый класс object и в результате имеет все атрибуты и методы, определенные базовым классом object. Мы можем проверить все атрибуты и методы, унаследованные или определенные классом Human, используя функцию dir.

Функцияdirвозвращает список всех атрибутов и методов, определенных для любого объекта Python.

Полностью статью можно прочитать здесь

Если вам нравятся мои статьи и вы считаете их полезными, угостите меня кофе. Спасибо!