Курс 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. Отправка HTTP-запросов в Python
  2. discard() — удаление элемента из множества
  3. Измерение времени выполнения кода
  4. Простой калькулятор Python
  5. Получение имени функции с помощью inspect
  6. Обработка исключения UnboundLocalError
  7. Работа с парами ключ-значение
  8. Обновление шаблона base.html
  9. Константы в модуле cmath
  10. Объединение списков с использованием itertools.chain
  11. Функция product() в Python
  12. Классы данных в Python
  13. Построение графиков в Matplotlib
  14. Проверка существования переменной с оператором :=
  15. Разделение списка на гнппы
  16. Возврат значений из генератора
  17. Именованные кортежи в Python
  18. Изменение логики работы с временем
  19. Прокачанный трейсинг ошибок
  20. Нарезка списков в Python
  21. Сравнение строк в Python
  22. Моржовый оператор в Python 3.8
  23. Открытие и редактирование скриптов Python
  24. Метод __complex__ в Python
  25. Метод Event.wait() в Python
  26. Метод __iand__ для пользовательских классов
  27. Оформление текста в консоли с TermColor
  28. Вложенные генераторы в Python
  29. Таймер обратного отсчета
  30. Динамическая типизация в Python
  31. Глобальные переменные в Python
  32. Извлечение аудио из видео
  33. Преобразование числа в список цифр
  34. Работа с комбинациями в Python.
  35. split() без разделителя
  36. Печать календаря
  37. Форматирование вывода с F-строками
  38. Автоматизация скриптов на AWS Lightsail.
  39. Отрицательные индексы списков в Python
  40. Работа с файлами в Python
  41. Установка виртуального окружения Python
  42. Тестирование модели в PyTorch
  43. Контроль точности вывода чисел
  44. Метод gt в Python

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