Курс Python → Оптимизация памяти с slots
Атрибут slots в Python позволяет явно объявлять элементы данных (например, свойства) и запрещать создание словаря dict и weakref (если явно не объявлено в slots или не доступно в родительском элементе). Наличие магического атрибута slots делает несколько вещей. Во-первых, он ограничивает допустимый набор имен атрибутов объекта только перечисленными именами. Во-вторых, поскольку атрибуты теперь фиксированы, больше нет необходимости хранить атрибуты в словаре экземпляра, поэтому атрибут dict удаляется (если только базовый класс уже не имеет его; он также может быть добавлен обратно подклассом, который не имеет slots).
При использовании атрибута slots атрибуты хранятся в заранее определенных местах в массиве. Это позволяет экономить память и ускоряет доступ к атрибутам объекта. Кроме того, использование slots может помочь избежать опечаток в именах атрибутов, так как только объявленные имена будут доступны.
Для объявления атрибута slots в классе необходимо просто добавить атрибут slots со списком имен атрибутов, которые должны быть доступны. Например:
class MyClass:
__slots__ = ['attribute1', 'attribute2']
В данном примере класс MyClass имеет только два атрибута, attribute1 и attribute2, которые будут доступны для объектов этого класса. При попытке обратиться к другим атрибутам будет вызвано исключение.
Другие уроки курса "Python"
- Concrete Paths в Python
- Получение текущей даты и времени с помощью datetime
- Получение пути к текущему скрипту с помощью os
- Операции с матрицами в Python
- Пустой оператор pass в Python
- Иерархия классов в Python
- Получение текущей даты и времени
- Установка и использование emoji
- Добавление Progressbar в Python
- Лямбда-функции в Python
- Функции высшего порядка в Python
- Операторы увеличения и уменьшения в Python
- Разбиение текста в Python
- Обмен данными с asyncio.Queue
- Python 3.12: переиспользование кавычек
- Ввод нескольких значений
- Работа с датами в Python
- Функции в одну строку
- Работа с коллекциями Python
- Итерации в Python
- Установка и использование библиотеки google
- Основные операции с Numpy
- Объединение объектов в Python
- Работа с NumPy массивами
- Работа с необработанными строками
- Удаление дубликатов из списка
- Разделение строк методом split()
- Вычисление времени выполнения
- Синхронизация потоков с time.sleep()
- Настройка нарезки списков
- Преобразование объекта в строку
- Извлечение статей с newspaper3k
- IPython и Jupyter Notebook: руководство
- Очистка входных данных
- Псевдонимы в Python
- Метод lt для сортировки объектов
- Обработка ошибок в Python
- Работа с геоданными с помощью geopy
- Импорт классов из другого файла
- Конкатенация строковых литералов
- Создание класса в Python
- Python 3.12: Псевдонимы типов
- Создание OrderedDict
- Работа с переменными в Python
- Генератор списка в Python
- Атрибуты массивов в Numpy
- Официальный канал Python в Telegram
- Python Метод sleep() из time















