Курс 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. Комментарии в Python
  3. Работа со временем в Python
  4. Работа с кортежами в Python
  5. Прокачанный трейсинг ошибок
  6. Определение индекса элемента списка
  7. Работа с геоданными с помощью geopy
  8. Работа с CSV файлами
  9. Метод Self в Python
  10. Функция divmod() в Python
  11. Создание директории в Python
  12. Создание тестовых данных с Faker
  13. Нахождение максимального значения и его индекса в списке
  14. Роль ключевого слова self
  15. Работа с изменяемыми списками
  16. Замена элементов в списке с помощью генераторов списков
  17. JMESPath в Python
  18. Удаление falsy-значений из списка с помощью filter
  19. Метод rxor для операции побитового исключающего «или»
  20. Модуль math: основные функции
  21. split() — разделение строки
  22. Импорт модулей в Python 3.12
  23. Цикл for в Python
  24. Получение срезов итераторов
  25. Многострочные строки в Python
  26. Замена символов в строке
  27. Форматирование заголовков в Python
  28. Создание графики с черепахой
  29. Библиотека sh: удобные команды терминала
  30. Установка и использование Virtualenv
  31. Получение текущей директории
  32. Настройка нарезки списков
  33. Работа со словарями в Python
  34. Генераторы по генератору
  35. Профилирование с Pandas
  36. Список и кортеж в Python
  37. Установка и использование TensorFlow
  38. Определение локальных переменных в Python
  39. Удаление дубликатов в pandas
  40. Работа с контекстным менеджером Pool
  41. Работа с Path в Python
  42. JMESPath в Python
  43. Генерация случайных данных в NumPy
  44. Lambda Functions in Python

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