Курс Python → Оптимизация памяти с slots
Атрибут slots в Python позволяет явно объявлять элементы данных (например, свойства) и запрещать создание словаря dict и weakref (если явно не объявлено в slots или не доступно в родительском элементе). Наличие магического атрибута slots делает несколько вещей. Во-первых, он ограничивает допустимый набор имен атрибутов объекта только перечисленными именами. Во-вторых, поскольку атрибуты теперь фиксированы, больше нет необходимости хранить атрибуты в словаре экземпляра, поэтому атрибут dict удаляется (если только базовый класс уже не имеет его; он также может быть добавлен обратно подклассом, который не имеет slots).
При использовании атрибута slots атрибуты хранятся в заранее определенных местах в массиве. Это позволяет экономить память и ускоряет доступ к атрибутам объекта. Кроме того, использование slots может помочь избежать опечаток в именах атрибутов, так как только объявленные имена будут доступны.
Для объявления атрибута slots в классе необходимо просто добавить атрибут slots со списком имен атрибутов, которые должны быть доступны. Например:
class MyClass:
__slots__ = ['attribute1', 'attribute2']
В данном примере класс MyClass имеет только два атрибута, attribute1 и attribute2, которые будут доступны для объектов этого класса. При попытке обратиться к другим атрибутам будет вызвано исключение.
Другие уроки курса "Python"
- Многоточие в Python
- Переопределение метода xor в Python
- Bootle — простой веб-фреймворк
- Генераторы в Python
- Разница между датами
- Структура данных словарь в Python
- Работа с множествами в Python
- Комментарии в Python
- Оптимизация методов в Python 3.7
- Динамические маршруты во Flask
- Декоратор Ajax required
- Многострочные комментарии в Python
- Установка и использование Telegram API в Python
- Counter() — подсчет элементов
- Декораторы в Python
- Профилирование данных с Pandas.
- Импорт модулей в Python 3.12
- Генерация случайных данных в NumPy
- Оператор zip в Python
- Объединение кортежей в Python
- Управление ресурсами с контекстными менеджерами
- Многострочные строки в Python
- Декоратор Property в Python
- Обход элементов в Python
- Измерение времени выполнения кода
- Работа с необработанными строками
- Команда %dhist — список посещенных каталогов
- Поиск индекса элемента в списке
- Синхронизация потоков с time.sleep()
- Манипуляция формой массива в Numpy
- Создание коллекций из выражения-генератора
- Pillow: работа с изображениями
- Отступы в Python
- Работа со стеком в Python
- Оптимизация параметров в Python
- Получение текущей даты и времени с помощью datetime
- Выражения-генераторы в Python
- Преобразование PowerPoint в PDF.
- Форматирование кода на Python
- Работа с очередями в Python
- Метод difference_update() — разность множеств
- Распаковка с оператором *
- Оператор Walrus в Python
- Решатель судоку на Python с pygame
- Проекты на Python















