Курс Python → Оптимизация памяти с slots
Атрибут slots в Python позволяет явно объявлять элементы данных (например, свойства) и запрещать создание словаря dict и weakref (если явно не объявлено в slots или не доступно в родительском элементе). Наличие магического атрибута slots делает несколько вещей. Во-первых, он ограничивает допустимый набор имен атрибутов объекта только перечисленными именами. Во-вторых, поскольку атрибуты теперь фиксированы, больше нет необходимости хранить атрибуты в словаре экземпляра, поэтому атрибут dict удаляется (если только базовый класс уже не имеет его; он также может быть добавлен обратно подклассом, который не имеет slots).
При использовании атрибута slots атрибуты хранятся в заранее определенных местах в массиве. Это позволяет экономить память и ускоряет доступ к атрибутам объекта. Кроме того, использование slots может помочь избежать опечаток в именах атрибутов, так как только объявленные имена будут доступны.
Для объявления атрибута slots в классе необходимо просто добавить атрибут slots со списком имен атрибутов, которые должны быть доступны. Например:
class MyClass:
__slots__ = ['attribute1', 'attribute2']
В данном примере класс MyClass имеет только два атрибута, attribute1 и attribute2, которые будут доступны для объектов этого класса. При попытке обратиться к другим атрибутам будет вызвано исключение.
Другие уроки курса "Python"
- Библиотека Chartify: руководство
- Слияние словарей в Python 3.9
- Присвоение и ссылки
- Ограничение итераций в Python
- Генерация фальшивых данных с Faker
- Сортировка данных в Python
- Списки: объединение, изменение
- Отладка регулярных выражений в Python
- Подсчет элементов с помощью Counter
- Измерение времени выполнения кода
- Проверка подстроки в строке с помощью in
- Возвращение нескольких значений через кортеж или класс
- Работа с модулем random
- Codecademy в Telegram
- Профилирование с Pandas
- Метод pos в Python
- Удаление файлов с shutil.os.remove()
- Извлечение аудио из видео
- Метод clear для коллекций
- Установка виртуального окружения Python
- Измерение потребления памяти при сортировке
- Поиск кода
- Логирование в Python
- Создание новой даты в Python
- Оператор распаковки в Python
- Работа с Telegram API на Python
- Локальные переменные.
- Методы работы со списками
- Разбиение текста в Python
- Преобразование типов данных в set comprehension
- Преобразование генераторов в циклы
- Defaultdict в Python
- Работа с набором данных CIFAR10 в PyTorch
- Правила именования переменных
- Создание копии списка в Python
- Виртуальные среды в Python
- Настройка Cron
- Логирование с Logzero: ротация файла
- Python Метод sleep() из time
- Модуль functools в Python
- Форматирование строк в Python
- Работа с массивами в Python
- Модуль Operator в Python
- Метод enumerate() в Python
- List Comprehension Tutorial
- Функции map, filter и reduce
- Операции с кортежами















