Курс Python → Оптимизация памяти с slots
Атрибут slots в Python позволяет явно объявлять элементы данных (например, свойства) и запрещать создание словаря dict и weakref (если явно не объявлено в slots или не доступно в родительском элементе). Наличие магического атрибута slots делает несколько вещей. Во-первых, он ограничивает допустимый набор имен атрибутов объекта только перечисленными именами. Во-вторых, поскольку атрибуты теперь фиксированы, больше нет необходимости хранить атрибуты в словаре экземпляра, поэтому атрибут dict удаляется (если только базовый класс уже не имеет его; он также может быть добавлен обратно подклассом, который не имеет slots).
При использовании атрибута slots атрибуты хранятся в заранее определенных местах в массиве. Это позволяет экономить память и ускоряет доступ к атрибутам объекта. Кроме того, использование slots может помочь избежать опечаток в именах атрибутов, так как только объявленные имена будут доступны.
Для объявления атрибута slots в классе необходимо просто добавить атрибут slots со списком имен атрибутов, которые должны быть доступны. Например:
class MyClass:
__slots__ = ['attribute1', 'attribute2']
В данном примере класс MyClass имеет только два атрибута, attribute1 и attribute2, которые будут доступны для объектов этого класса. При попытке обратиться к другим атрибутам будет вызвано исключение.
Другие уроки курса "Python"
- Обработка ошибок в JSON данных
- Создание копии итератора
- Работа с deque из collections
- Отправка HTTP-запросов в Python
- Изменяемые и неизменяемые объекты
- Использование type hints
- Управление сессиями в Python
- Модуль functools в Python
- Избегайте изменяемых аргументов
- Codecademy в Telegram
- Метод remove() для удаления элемента из списка
- Библиотека Emoji: использование смайлов в Python
- Concrete Paths — метод .with_suffix()
- Асинхронное программирование с asyncio
- Инвертирование словаря
- Отладка кода
- Функции с необязательными аргументами
- Генерация случайных чисел Python
- Генераторы в Python
- Переопределение метода __floordiv__
- Вычисление натуральных логарифмов в NumPy
- Подробная информация о %pinfo
- Обход дочерних элементов BeautifulSoup
- Настройка нарезки списков
- Проверка кортежей.
- Операции с датами в Python
- Создание новых функций через partial
- Основные операции с библиотекой Numpy
- Классы данных в Python
- Очистка входных данных
- Строковое представление объектов
- Измерение времени выполнения в Python
- Профилирование данных с Pandas.
- Обход словаря в Python
- Оператор «or» в Python
- Статическая типизация в Python
- Декораторы в Python
- Импорт в Python: список all
- Генераторы в Python
- Метод join() для объединения элементов
- Метод count() для списков
- Работа со слайсами
- Добавление элемента к кортежу
- Изменение элемента списка
- Конкатенация строк с методом join()
- UserList в Python: Описание и примеры использования
- Генерация резюме в Gensim















