Курс Python → Оптимизация памяти в Python
Python — это объектно-ориентированный язык программирования, который работает с объектами и ссылками на них. Когда мы создаем объект какого-то класса, Python выделяет для него определенную ячейку памяти и возвращает его идентификатор с помощью функции id(). Этот идентификатор является уникальным для каждого объекта в рамках своего запуска программы.
Однако, если мы создадим два объекта одного и того же класса и вызовем функцию id() для обоих объектов, мы увидим, что их идентификаторы совпадают. Это происходит потому, что Python оптимизирует использование памяти и при создании второго объекта класса, он использует ту же ячейку памяти, что и для первого объекта.
Это поведение связано с особенностями реализации Python (CPython) и его механизмом работы с памятью. При вызове функции id() Python возвращает адрес ячейки памяти, в которой хранится объект, и этот адрес может быть одинаковым для нескольких объектов, если они находятся в одной и той же ячейке памяти.
class WTF:
pass
obj1 = WTF()
obj2 = WTF()
print(id(obj1)) # Выводит идентификатор объекта obj1
print(id(obj2)) # Выводит идентификатор объекта obj2
В приведенном примере мы создаем два объекта класса WTF и выводим их идентификаторы с помощью функции id(). Как правило, идентификаторы объектов будут различными, но в случае оптимизации памяти Python может использовать одинаковые идентификаторы для объектов, находящихся в одной и той же ячейке памяти.
Другие уроки курса "Python"
- Изменение IP-адреса в Python
- Работа с датами в Python
- Преобразование текста в нижний регистр
- Работа с YAML в Python: PyYAML.
- Управление асинхронными задачами с помощью Semaphore
- Цикл while в Python
- Фильтры Pillow: NEAREST, BILINEAR, BICUBIC
- Склеивание строк через метод join()
- Управление контекстом выполнения кода
- Функция product() в Python
- Оптимизация гиперпараметров в Python
- Работа с GitHub в Telegram
- Метод pop() списка
- Оператор @ для умножения матриц
- Удаление дубликатов из списка
- Получение значений из словарей
- Python enumerate() функции
- Defaultdict в Python
- Оптимизация памяти с __slots__
- Метод __ilshift__ для битового сдвига влево
- Присвоение значений переменным в Python
- Работа с функцией next() в Python
- Передача неизвестных аргументов в Python.
- Избегание изменяемых аргументов
- Проверка условий в Python
- Методы обработки строк в Python
- Pretty-printing JSON в Python
- Управление асинхронными задачами на Python.
- Библиотека Rich: форматирование текста
- Конкатенация строк с помощью join()
- Упрощение условных выражений с тернарным оператором
- Работа с классами данных
- Библиотека funcy: удобные утилиты
- Функция с *args.
- Возврат нескольких значений
- Очистка данных в Python
- capitalize() — изменение регистра первого символа строки
- Функции map, filter и reduce
- Генератор списка с условием if
- Применение функции map() в Python
- Python 3.12: переиспользование кавычек
- Удаление дубликатов из списка с помощью dict.fromkeys
- Работа с Path в Python
- Установка и обучение ChatterBot
- Условные выражения в Python
- Преобразование в float















