Курс Python → Оптимизация памяти с slots
Атрибут slots в Python позволяет явно объявлять элементы данных (например, свойства) и запрещать создание словаря dict и weakref (если явно не объявлено в slots или не доступно в родительском элементе). Наличие магического атрибута slots делает несколько вещей. Во-первых, он ограничивает допустимый набор имен атрибутов объекта только перечисленными именами. Во-вторых, поскольку атрибуты теперь фиксированы, больше нет необходимости хранить атрибуты в словаре экземпляра, поэтому атрибут dict удаляется (если только базовый класс уже не имеет его; он также может быть добавлен обратно подклассом, который не имеет slots).
При использовании атрибута slots атрибуты хранятся в заранее определенных местах в массиве. Это позволяет экономить память и ускоряет доступ к атрибутам объекта. Кроме того, использование slots может помочь избежать опечаток в именах атрибутов, так как только объявленные имена будут доступны.
Для объявления атрибута slots в классе необходимо просто добавить атрибут slots со списком имен атрибутов, которые должны быть доступны. Например:
class MyClass:
__slots__ = ['attribute1', 'attribute2']
В данном примере класс MyClass имеет только два атрибута, attribute1 и attribute2, которые будут доступны для объектов этого класса. При попытке обратиться к другим атрибутам будет вызвано исключение.
Другие уроки курса "Python"
- Срезы в Numpy
- Метод __ixor__ для побитового исключающего ИЛИ
- Генераторные функции в Python
- Создание функций высшего порядка
- Цикл for в Python
- Метод split() в Python
- Расширение операции побитового «и» в Python
- Сглаживание списка
- Цикл for в Python
- Списковые включения в Python
- Определение объема памяти объекта
- Метод title() в Python
- Отрицательные индексы списков
- Особенности ключей словаря в Python
- Разность множеств
- Метод rmatmul для обратного матричного умножения
- Преобразование текста в нижний регистр
- Многоточие в Python
- Изменение списка срезом
- Списковый компрехеншен.
- Создание новых списков в Python
- Генераторы в Python
- Оптимизация методов в Python 3.7
- Поиск частого элемента
- Объединение итераторов
- Список переменных в Python
- Метод split() для разделения строк
- Удаление элемента по индексу в Python
- Вывод баннеров
- Декоратор total_ordering для класса Point
- Методы __repr__ и __str__ в Python
- Метод join() с набором
- Работа с словарями в Python
- Декораторы в Python
- Курс по дообучению ChatGPT
- Динамические маршруты во Flask
- Переворот списка в Python
- Реверс строки и списка в Python.
- Python 3.12: переиспользование кавычек
- Удаление файлов и папок в Python
- Работа с Path в Python
- Лимиты на ресурсы Python
- Подписка на @SelectelNews
- Python: возвращение нескольких значений
- Резервирование символов в Python
- Сравнение объектов в Python















