Курс Python → Оптимизация памяти с slots
Атрибут slots в Python позволяет явно объявлять элементы данных (например, свойства) и запрещать создание словаря dict и weakref (если явно не объявлено в slots или не доступно в родительском элементе). Наличие магического атрибута slots делает несколько вещей. Во-первых, он ограничивает допустимый набор имен атрибутов объекта только перечисленными именами. Во-вторых, поскольку атрибуты теперь фиксированы, больше нет необходимости хранить атрибуты в словаре экземпляра, поэтому атрибут dict удаляется (если только базовый класс уже не имеет его; он также может быть добавлен обратно подклассом, который не имеет slots).
При использовании атрибута slots атрибуты хранятся в заранее определенных местах в массиве. Это позволяет экономить память и ускоряет доступ к атрибутам объекта. Кроме того, использование slots может помочь избежать опечаток в именах атрибутов, так как только объявленные имена будут доступны.
Для объявления атрибута slots в классе необходимо просто добавить атрибут slots со списком имен атрибутов, которые должны быть доступны. Например:
class MyClass:
__slots__ = ['attribute1', 'attribute2']
В данном примере класс MyClass имеет только два атрибута, attribute1 и attribute2, которые будут доступны для объектов этого класса. При попытке обратиться к другим атрибутам будет вызвано исключение.
Другие уроки курса "Python"
- Вывод символов строки в Python
- Оптимизация памяти с slots
- Применение команды break
- Избегайте ошибку FileNotFoundError
- Названия переменных
- Работа с библиотекой requests
- Методы HTTP запросов в Flask
- Чтение и запись TOML-конфигов
- Оптимизация строк в Python
- Регулярные выражения: метод match
- Оптимизация создания строк
- Распаковка аргументов в Python
- Сравнение объектов в Python
- Изменение списка срезом
- Создание пользовательской коллекции в Python
- Метод enumerate() в Python
- Разделение строки в Python
- Работа с функцией next() в Python
- Функции с дополнением
- Генераторы в Python
- Работа с исключениями в Python
- Улучшение читаемости кода в Python
- Обмен переменными в Jupyter
- Работа с кортежами в Python
- Вычисление логарифмов в Python
- Многоточие в Python
- Операции с матрицами в Python
- Условные выражения в Python
- Установка максимального количества цифр
- Python Метод sleep() времени
- Декодирование строк в Python
- Поиск подстроки в строке
- Основы работы со строками в Python
- Декораторы с аргументами
- Python: Фильтрация списков с помощью filter()
- Просмотр атрибутов и методов класса
- Retrying в Python: повторные вызовы
- Работа с многоуровневыми словарями в Python
- Изменение регистра данных
- Нарезка списков в Python
- Python Calendar Usage
- Очистка строки в Python















