Курс 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. Создание копии итератора
  2. Установка random seed в Python
  3. Хранение переменных в Python.
  4. Функция count() в Python
  5. Работа с датой и временем в Python
  6. Работа со словарями Python
  7. Отправка поздравлений по дню рождения
  8. Возврат нескольких значений
  9. Управление асинхронными задачами на Python.
  10. Применение функции map() с лямбда-функциями
  11. Генераторы в Python
  12. Работа с zip-архивами в Python
  13. Работа с модулем glob в Python
  14. Логирование с Logzero
  15. Поиск индекса элемента
  16. Импорт и использование модулей в Python
  17. Объединение множеств в Python
  18. Добавление элемента к кортежу
  19. Python-dateutil — работа с датами
  20. EMOT преобразование эмодзи в текст
  21. Работа с типами данных в Python с помощью pydantic.
  22. Mad Libs Generator
  23. Управление фоновыми задачами в Python
  24. Python: изменяемые и неизменяемые коллекции
  25. Преобразование списков в словарь
  26. Прокачанный трейсинг ошибок
  27. Динамическая типизация в Python
  28. Обмен переменными в Jupyter
  29. Группы исключений в Python
  30. Поиск файлов по шаблону
  31. Транспонирование матрицы
  32. Работа с комплексными числами
  33. Лямбда-функции в Python
  34. Функция print() — вывод информации
  35. Функция all() в Python
  36. Методы и функции в Python
  37. Модуль math: основные функции
  38. Применение функции к каждому элементу списка
  39. Генератор списка в Python
  40. Работа с IP-адресами в Python
  41. Модуль inspect
  42. Оператор «or» в Python
  43. Метод init в Python
  44. Работа с аргументами командной строки в Python
  45. Объединение словарей в Python
  46. Установка библиотек в Python
  47. Улучшенные подсказки для импорта в Python 3.12

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