Курс 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. Работа с контекстным менеджером Pool
  2. Поиск email
  3. Профилирование данных с Pandas.
  4. Тестирование с unittest
  5. Контроль точности вывода чисел
  6. Стать Python-разработчиком
  7. Создание GUI на Tkinter
  8. Логирование в Python
  9. Создание словаря и множества
  10. Работа с файлами в Python
  11. Расчет времени выполнения кода
  12. Преобразование списка в словарь через генератор
  13. Переопределение метода __lshift__
  14. Использование обратной косой черты в f-строках
  15. Наиболее частотные элементы с помощью Counter
  16. Модуль functools в Python
  17. Работа с модулем os в Python
  18. Делегирование в Python
  19. Функция zip() в Python
  20. Логирование с Loguru
  21. Форматирование чисел в Python
  22. Работа с комплексными числами
  23. Проверка переменных окружения в Python
  24. Искажение имен в Python
  25. Реализация метода __abs__ в Python
  26. Замена текста с re.sub()
  27. Вычисление разности множеств в Python
  28. Фильтрация данных в Python.
  29. Метод __ixor__ для побитового исключающего ИЛИ
  30. Очистка входных данных
  31. Идентификатор объекта в Python
  32. Операторы увеличения и уменьшения в Python
  33. Принципы SRP и OCP
  34. Печать календаря
  35. Работа с getopt
  36. Методы classmethod и staticmethod
  37. Рациональные числа в Python
  38. Конкатенация списков в Python
  39. Путь к интерпретатору Python
  40. Наследование в программировании
  41. Изменение объектов в Python
  42. Python: изменяемые и неизменяемые коллекции
  43. Работа с эмодзи в Python
  44. Методы в Python

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