Найти в Дзене
576 подписчиков

В языке программирования Python функция len() используется для получения количества элементов в различных типах данных, таких как списки, кортежи, строки и другие коллекции. Однако на низком уровне, в реализации Python, написанной на C (CPython), len() работает не как функция в традиционном понимании, а как обращение к определённому полю структуры данных объекта. Это поле называется ob_size.


Каждый объект в Python, в реализации на C, представлен структурой PyObject, которая содержит как минимум два элемента: один указатель на соответствующий тип объекта (ob_type) и размер объекта (ob_size). Поле ob_size хранит количество элементов для коллекций или длину для строковых типов данных.

Обращение напрямую к значению в памяти гораздо быстрее, чем вызов функции, которая затем выполняет вычисления или даже простые операции. Поскольку длина объекта уже известна и хранится в ob_size, её получение происходит практически мгновенно.

Не забывайте подписываться и ставить лайки,так же у нас есть Телеграм-канал, будь в курсе новых статей и продолжай погружаться в увлекательный мир технологий вместе с нами!
Около минуты