В этой статье мы рассмотрим процесс инстанцирования объектов, за которым следует внутренний Python для создания объектов. Я начну с основ создания объектов, а затем мы углубимся в понимание конкретных методов, таких как __new__
, __init__
и __call__
. Мы также поймем Metaclass
в Python, а также его роль в процессе создания объекта. Хотя это продвинутые темы, статья объясняет каждую тему шаг за шагом и с нуля, так что даже новички могут ее понять.
Обратите внимание, что эта статья написана с учетом Python3.
Оглавление
Внутреннее устройство инстанцирования объектов и метаклассов в Python
- Базовый класс
object
в Python3 - Объекты и типы в Python
- Метакласс в Python
- Процесс создания объекта в Python
- Метод
__new__
- Метод
__init__
- Метод
__call__
- вызываемый()
Базовый класс object
в Python3
В Python3 все классы неявно наследуются от встроенного базового класса object
. Класс object
предоставляет некоторые распространенные методы, такие как __init__
, __str__
и __new__
, которые могут быть переопределены дочерним классом. Рассмотрим код ниже, например:
class Human:
pass
В приведенном выше коде класс Human
не определяет никаких атрибутов или методов. Однако по умолчанию класс Human
наследует базовый класс object
и в результате имеет все атрибуты и методы, определенные базовым классом object
. Мы можем проверить все атрибуты и методы, унаследованные или определенные классом Human
, используя функцию dir
.
Функция
dir
возвращает список всех атрибутов и методов, определенных для любого объекта Python.
Полностью статью можно прочитать здесь
Если вам нравятся мои статьи и вы считаете их полезными, угостите меня кофе. Спасибо!