Курс 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. Работа с Telegram API на Python
  2. Форматирование строк в Python
  3. Оператор continue в Python
  4. Сравнение строк в Python
  5. Склеивание строк через метод join()
  6. Метод count в Python: почему count(», ») возвращает 4?
  7. Управление импортом в Python
  8. Генератор надежных паролей
  9. Контроль точности вывода чисел
  10. Список и кортеж в Python
  11. Функции в Python: создание и вызов
  12. Проверка строки на палиндром
  13. Расчет времени выполнения кода
  14. Работа с модулем random
  15. Оператор деления для класса Rational
  16. Работа с байтовыми строками в Python
  17. Хеширование паролей с использованием salt
  18. Итерации в Python
  19. Поиск шаблона в начале строки
  20. Работа с аргументами командной строки в Python
  21. Параллельные вычисления в Python
  22. Обход элементов в Python
  23. Расчет времени выполнения
  24. Поиск с библиотекой Google
  25. Работа с множествами в Python
  26. Блок else в циклах Python
  27. Обновление шаблона base.html
  28. Python union() функция — объединение множеств
  29. Зарезервированные слова в Python
  30. Повторение элементов списков
  31. Ускоренный импорт библиотек
  32. Объединение словарей в Python
  33. Изменение объектов в Python
  34. Метод init в Python
  35. Python itertools combinations() — группировка элементов
  36. Удаление дубликатов из списка
  37. Печать в одной строке
  38. Приближение чисел в Python
  39. Подсчет количества элементов в списке
  40. Применение функции к элементам списка
  41. Генерация тестовых данных с factory_boy
  42. Поиск email
  43. Сортировка в Python
  44. Обратное распространение ошибки
  45. Поиск наиболее частого элемента в списке
  46. Enum в Python

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