Курс 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. Проверка ввода с помощью isdigit
  4. Каналы Senior: Python, Java, Frontend, SQL, C++
  5. Отладчик pdb: начало работы
  6. Выражения-генераторы в Python
  7. Подсчет количества элементов в списке
  8. Инверсия списка/строки в Python
  9. Исправление ошибки NameError
  10. Работа с комплексными числами
  11. Разделение строки на пары ключ-значение.
  12. discard() — удаление элемента из множества
  13. Python enumerate() использование
  14. Очистка строки в Python
  15. Сортировка слиянием
  16. Преобразование документов в PDF с помощью Spire.Office
  17. Python union() функция — объединение множеств
  18. Преобразование данных в Python
  19. Инициализация структур данных
  20. Вложенные циклы в Python
  21. Проверка на истинность объектов в Python
  22. Оператор in и not in в Python
  23. Создание функций с произвольным количеством аргументов
  24. Путь к интерпретатору Python
  25. Округление банкира в Python
  26. Поиск самого частого элемента
  27. Принципы программирования
  28. Игра «Угадывание чисел»
  29. Декоратор total_ordering для сравнения объектов
  30. Проверка версии Python
  31. CSV строка разделение в Python
  32. Объединение словарей в Python
  33. Комментарии в Python
  34. Подробная информация о %pinfo
  35. Создание класса очереди
  36. Работа с библиотекой requests
  37. Многоточие в Python
  38. Метод bool() в Python
  39. Метод title() в Python
  40. Модуль pprint: улучшение вывода данных
  41. Удаление дубликатов в pandas
  42. Визуализация пропусков данных
  43. Управление пакетами с pip
  44. Безопасный доступ к значениям словаря

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