Курс 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"

  1. Функция map() в Python
  2. Замена текста в Python
  3. Операции с кортежами
  4. Списки в Python
  5. Роль ключевого слова self
  6. Счетчик ссылок в Python
  7. Инверсия списка и строки
  8. Запрос пароля с помощью getpass
  9. Генераторы списков
  10. Работа с изображениями Pillow
  11. Слияние словарей в Python 3.9
  12. GitHub в Telegram: подписка на уведомления
  13. Обработка аргументов Python
  14. Функция pow() — возвести число в степень
  15. Установка и использование howdoi
  16. Удаление элемента из списка
  17. Множественное назначение в Python
  18. Оператор is в Python
  19. Оценка точности модели
  20. Обработка ошибок в JSON данных
  21. Фильтрация данных в Python.
  22. Проверка индексов коллекции
  23. Нан-рефлексивность в Python
  24. Выход из профиля в Django
  25. Проверка ввода с помощью isdigit
  26. Тип данных TypeVarTuple
  27. Изменение элемента списка
  28. Проблемы с именами переменных
  29. Конкатенация строк с помощью join()
  30. Класс Counter() для подсчета элементов
  31. Функция reduce() в Python
  32. Создание списков в Python
  33. Переворот строки с помощью срезов
  34. Генерация QR-кодов с библиотекой qrcode
  35. Проблема сравнения словарей
  36. Отладка утечек памяти в Python
  37. Преобразование данных в Python
  38. Удаление и повторная вставка ключа в OrderedDict
  39. Подсчет вхождений элементов
  40. Создание файла с проверкой ошибки
  41. Установка и использование pyshorteners
  42. Транспонирование 2D-массива с помощью zip
  43. Хранение данных с помощью dataclasses
  44. Numpy: объединение массивов
  45. Подсчет элементов в Python
  46. Сортировка элементов в Python

Marketello читают маркетологи из крутых компаний