Курс 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
- Аргументы *args и **kwargs
- Метод __imod__ для Python
- Конвертация текстовых чисел с помощью Numerizer
- Частичное совпадение пользовательского ввода в Python 3.10
- Метод rlshift для битового сдвига
- Форматирование чисел в Python
- Основы Python
- Поток данных в Python
- Операции с комплексными числами
- Проблемы с именами переменных
- Тестирование времени с Freezegun
- Названия столбцов в Python таблицах
- Управление User-Agent в Python
- Списковое включение в Python
- Проверка условий: all и any
- Python UserString — создание подклассов строк
- Приоритет операций в Python
- Символ подчеркивания в Python
- Создание панели меню Tkinter
- Особенности запятых в Python
- Курсы Яндекс Практикум
- Срезы в Numpy
- Форматирование данных с pprint
- Реверс строки и списка в Python.
- Создание новой даты в Python
- Переворот списка в Python
- Цикл for в Python
- Именованные кортежи в Python
- Concrete Paths — метод .with_suffix()
- Обработка исключений в Python
- Регулярные выражения: метод match
- Подписка на @SelectelNews
- Работа с модулем bisect
- Сортировка в Python
- Подсчет элементов в Python
- Обновление данных через PUT запрос
- Python Enumerate
- Работа со слайсами
- Изменение регистра данных















