Курс Python → Оптимизация памяти с slots
Атрибут slots в Python позволяет явно объявлять элементы данных (например, свойства) и запрещать создание словаря dict и weakref (если явно не объявлено в slots или не доступно в родительском элементе). Наличие магического атрибута slots делает несколько вещей. Во-первых, он ограничивает допустимый набор имен атрибутов объекта только перечисленными именами. Во-вторых, поскольку атрибуты теперь фиксированы, больше нет необходимости хранить атрибуты в словаре экземпляра, поэтому атрибут dict удаляется (если только базовый класс уже не имеет его; он также может быть добавлен обратно подклассом, который не имеет slots).
При использовании атрибута slots атрибуты хранятся в заранее определенных местах в массиве. Это позволяет экономить память и ускоряет доступ к атрибутам объекта. Кроме того, использование slots может помочь избежать опечаток в именах атрибутов, так как только объявленные имена будут доступны.
Для объявления атрибута slots в классе необходимо просто добавить атрибут slots со списком имен атрибутов, которые должны быть доступны. Например:
class MyClass:
__slots__ = ['attribute1', 'attribute2']
В данном примере класс MyClass имеет только два атрибута, attribute1 и attribute2, которые будут доступны для объектов этого класса. При попытке обратиться к другим атрибутам будет вызвано исключение.
Другие уроки курса "Python"
- Вакансии в Nebius
- Создание файла с проверкой ошибки
- Работа с часовыми поясами в Python.
- Кортеж в Python: создание, доступ, изменение
- Класс UserDict: дополнительная функциональность
- Ключевое слово global в Python
- Условные выражения в Python
- Работа с Colorama
- Переменная Шредингера
- Удаление знаков препинания в Python
- Форматирование строк в Python
- Метод index() в Python
- Функция zip() в Python
- Частичное совпадение ввода
- Выражения-генераторы в Python
- Функция map() и ленивая оценка
- Принципы Zen Python
- Работа с областями видимости переменных
- Явный импорт в Python
- Работа с путями в Python
- Цикл for в Python
- Создание класса в Python
- CSV строка разделение в Python
- Преобразование букв в нижний регистр
- Сортировка слиянием
- Модуль xkcd: добавление юмора в Python
- Функция product() в Python
- Работа с модулем glob в Python
- Резервирование символов в Python
- OrderedDict — упорядоченный словарь
- Печать комбинаций в Python с Itertools
- Структурирование именованных констант
- Хранение переменных в Python.
- Извлечение новостей с newspaper3k
- Создание итератора
- Метод split() в Python
- Преобразование вложенного списка
- Атрибуты класса и экземпляра
- Лямбда-функции в Python
- Работа с модулем random
- Оператор * в Python
- Закрытие файла в Python















