Курс 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"
- Возвращение нескольких значений
- Непрерывная проверка в Python
- Работа со случайными элементами
- Сортировка и разворот списка
- Запуск файлового сервера
- Работа с CSV файлами
- Использование метода lower()
- Замена текста в Python
- Извлечение аудио из видео
- Разделение строк в Python
- Объединение строк с помощью метода join
- Регистрация на TenChat
- Вывод символов строки в Python
- Форматирование вывода списков
- Установка User-Agent в Python
- Проверка списка: any() и all()
- Генераторы в Python
- Создание таблиц в Python с PrettyTable
- Генераторные функции в Python
- Повторение элементов в Python
- Сравнение объектов в Python
- Работа с географическими данными.
- Работа с типами данных в Python с помощью pydantic.
- Работа с итераторами через срезы
- Методы classmethod и staticmethod
- Присвоение и ссылки
- Функция с *args.
- Ускорение обработки данных с %autoawait
- Получение текущей даты в Python
- Работа с байтовыми строками в Python
- Преобразование символов в нижний регистр
- Работа с модулем glob в Python
- Декораторы в Python
- Python: Splat-оператор и splatty-splat
- Декоратор total_ordering для сравнения объектов
- Декораторы в Python
- Принцип одной функции
- Конвертация коллекций в Python
- Обработка исключений с блоком else
- Конкатенация строк в Python
- Взаимодействие с sys
- Поток данных в Python
- Метод append() для списка
- Отступы в Python
- Python Метод sleep() из time
- Логические значения в Python
- Список переменных с %who















