Курс Python → Оптимизация памяти с __slots__
Функция __slots__ в Python представляет собой специальный атрибут класса, который позволяет определить фиксированный набор атрибутов для экземпляров данного класса. Это позволяет существенно уменьшить использование памяти, так как вместо словаря для хранения атрибутов будет использоваться кортеж фиксированного размера.
Определяя атрибут __slots__ в классе, мы указываем, какие атрибуты будут доступны для экземпляров этого класса. Это делает класс более легким и эффективным в использовании, особенно при создании большого количества экземпляров.
Пример использования __slots__:
class MyClass:
__slots__ = ('attr1', 'attr2')
def __init__(self, attr1, attr2):
self.attr1 = attr1
self.attr2 = attr2
obj1 = MyClass(10, 20)
print(obj1.attr1)
print(obj1.attr2)
В данном примере мы создаем класс MyClass с атрибутами attr1 и attr2, определяемыми с помощью __slots__. При создании экземпляра класса мы передаем значения для этих атрибутов, а затем можем обращаться к ним как к обычным атрибутам объекта.
Использование __slots__ особенно полезно в случаях, когда мы знаем заранее, какие атрибуты будут у экземпляров класса, и хотим оптимизировать использование памяти. Этот механизм позволяет сделать наши программы более эффективными и быстрыми.
Другие уроки курса "Python"
- Функция map() в Python
- Замена текста в Python
- Операции с кортежами
- Списки в Python
- Роль ключевого слова self
- Счетчик ссылок в Python
- Инверсия списка и строки
- Запрос пароля с помощью getpass
- Генераторы списков
- Работа с изображениями Pillow
- Слияние словарей в Python 3.9
- GitHub в Telegram: подписка на уведомления
- Обработка аргументов Python
- Функция pow() — возвести число в степень
- Установка и использование howdoi
- Удаление элемента из списка
- Множественное назначение в Python
- Оператор is в Python
- Оценка точности модели
- Обработка ошибок в JSON данных
- Фильтрация данных в Python.
- Проверка индексов коллекции
- Нан-рефлексивность в Python
- Выход из профиля в Django
- Проверка ввода с помощью isdigit
- Тип данных TypeVarTuple
- Изменение элемента списка
- Проблемы с именами переменных
- Конкатенация строк с помощью join()
- Класс Counter() для подсчета элементов
- Функция reduce() в Python
- Создание списков в Python
- Переворот строки с помощью срезов
- Генерация QR-кодов с библиотекой qrcode
- Проблема сравнения словарей
- Отладка утечек памяти в Python
- Преобразование данных в Python
- Удаление и повторная вставка ключа в OrderedDict
- Подсчет вхождений элементов
- Создание файла с проверкой ошибки
- Установка и использование pyshorteners
- Транспонирование 2D-массива с помощью zip
- Хранение данных с помощью dataclasses
- Numpy: объединение массивов
- Подсчет элементов в Python
- Сортировка элементов в Python















