Курс 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.
- Метод __getitem__ в Python
- Тестирование времени с Freezegun
- Декораторы классов
- Заказ карты Тинькофф Black
- Codecademy в Telegram
- F-строки в Python 3.8
- Объединение объектов в Python
- Распаковка аргументов в Python
- Установка Python3.7 и PIP
- Проблемы с именами переменных
- Каналы Senior: Python, Java, Frontend, SQL, C++
- Настройка вывода NumPy
- Python Аргументы по умолчанию
- Функция pow() — возвести число в степень
- Форматирование заголовков в Python
- Методы Python для работы с данными
- Создание новых списков
- Поиск email
- Управление асинхронными задачами с помощью Semaphore
- Именованные кортежи в Python
- Работа с изображениями PIL
- Подсчет элементов в списке с Counter
- Разбиение строки в Python
- Атрибуты класса и экземпляра
- inspect в Python: анализ кода
- Генераторы в Python
- Метод pop() списка
- Объединение, распаковка и деструктуризация
- Логирование с Logzero
- Мониторинг работы программы Py-spy
- Модуль itertools: комбинации и перестановки
- Декоратор total_ordering для сравнения объектов
- Оператор «not» в Python
- Вычисление фазы комплексного числа
- Python Enum Weekday Usage
- Преобразование чисел в слова
- Избегайте изменяемых аргументов
- Виртуальные среды в Python
- Добавление цвета в консоли
- Экспорт данных в файл.
- Модуль inspect: получение информации о объектах
- Необязательные аргументы в Python















