Курс 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"

  1. Регулярные выражения в Python
  2. Поиск кода
  3. Оболочка Python
  4. Эффективная конкатенация строк в Python
  5. Строки в Python: апострофы и кавычки
  6. Поиск уникальных и повторяющихся элементов
  7. Проверка элементов списка условием
  8. Особенности запятых в Python
  9. Проблема с изменяемыми аргументами
  10. Операторы увеличения и уменьшения в Python
  11. Настройка вывода в Numpy
  12. Реализация операции -= для пользовательского класса
  13. Создание уникального проекта
  14. Копирование объектов в Python
  15. Непрерывная проверка в Python
  16. Шаблоны Flask: условия и циклы
  17. Переопределение метода xor в Python
  18. Оператор Walrus: правильное использование
  19. Фильтрация данных в Python.
  20. Декоратор Ajax required
  21. Декораторы с аргументами в Python
  22. Работа с CSV файлами
  23. Работа с deque в Python
  24. Настройка шрифта и цвета в Tkinter
  25. Проверка индексов коллекции
  26. Проверка условий: all и any
  27. Работа с массивами в Python
  28. Локальные переменные.
  29. Модуль pprint: улучшение вывода данных
  30. Работа с файлами в Python
  31. Управление браузером с Selenium
  32. Работа с Telegram API на Python
  33. Создание копии итератора
  34. Создание словаря в Python
  35. Реализация метода __abs__ в Python
  36. Метод join() для объединения строк
  37. Доступ к локальным переменным
  38. Установка максимального количества цифр
  39. Python: отличительная особенность — отступы
  40. Конвертация изображений в PDF
  41. Python Calendar Usage
  42. Управление сессиями в Python
  43. Работа с асинхронными задачами в Python
  44. Извлечение аудио из видео

Marketello читают маркетологи из крутых компаний