Курс Python → Оптимизация памяти с slots
Атрибут slots в Python позволяет явно объявлять элементы данных (например, свойства) и запрещать создание словаря dict и weakref (если явно не объявлено в slots или не доступно в родительском элементе). Наличие магического атрибута slots делает несколько вещей. Во-первых, он ограничивает допустимый набор имен атрибутов объекта только перечисленными именами. Во-вторых, поскольку атрибуты теперь фиксированы, больше нет необходимости хранить атрибуты в словаре экземпляра, поэтому атрибут dict удаляется (если только базовый класс уже не имеет его; он также может быть добавлен обратно подклассом, который не имеет slots).
При использовании атрибута slots атрибуты хранятся в заранее определенных местах в массиве. Это позволяет экономить память и ускоряет доступ к атрибутам объекта. Кроме того, использование slots может помочь избежать опечаток в именах атрибутов, так как только объявленные имена будут доступны.
Для объявления атрибута slots в классе необходимо просто добавить атрибут slots со списком имен атрибутов, которые должны быть доступны. Например:
class MyClass:
__slots__ = ['attribute1', 'attribute2']
В данном примере класс MyClass имеет только два атрибута, attribute1 и attribute2, которые будут доступны для объектов этого класса. При попытке обратиться к другим атрибутам будет вызвано исключение.
Другие уроки курса "Python"
- Многопроцессорное программирование в Python
- Обработка исключений в Python 3
- Работа с индексами списков
- Генераторы в Python
- Основы слова
- Поиск элементов BeautifulSoup
- Определение наиболее частого элемента с помощью collections.Counter
- Улучшенные подсказки для импорта в Python 3.12
- Генераторы в Python
- Python Поверхностное Копирование
- Создание треугольника Паскаля
- Получение текущей даты в Python
- Преобразование строк в числа с плавающей запятой
- Применение команды break
- Flask: создание веб-приложений
- GitHub в Telegram: подписка на уведомления
- Сложные типы данных в Python
- Подписка на каналы разработчиков
- Операторы Splat и splatty-splat
- Список и кортеж в Python
- Получение списка файлов в директории с использованием os
- Команда %dhist — список посещенных каталогов
- Получение локальных переменных в Python
- Управление сессиями в Python
- Оформление кода на Python
- 9 уловок для чистого кода
- Именованные аргументы в Python
- Декоратор Ajax required
- Удаление URL-адресов в Python
- Форматирование даты с strftime()
- Оформление кода по PEP 8
- Нахождение максимального значения и его индекса в списке
- Обработка ошибок ввода данных
- Поиск подстроки в строке
- Объединение списков в строку
- Комментарии в Python
- Получение текущего времени в Python
- Слияние словарей в Python 3.9
- Реверс строки в Python
- Отслеживание прогресса с tqdm
- GitHub в Telegram: подписка на уведомления
- Оператор обр. импликации
- Работа с областями видимости переменных
- Python и Монти Пайтон
- Работа с deque из collections
- Отладка производительности Python
- Мощь вложенных функций в Python
- Операторы объединения в Python 3.9
- ChainMap избыточные ключи
- Работа с очередями в Python















