Курс 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. Метод __index__ в Python
  3. Операции с массивами в NumPy
  4. Проверка дубликатов в Python
  5. Избегайте пустого списка
  6. Удаление элементов по срезу
  7. Цикл for в Python
  8. Нахождение самого длинного слова в списке с помощью max
  9. Чтение и запись TOML-конфигов
  10. Названия переменных
  11. Принципы Zen of Python
  12. Отделение звука от видео
  13. Сложные типы данных в Python
  14. Декораторы в Python
  15. Поиск индекса элемента
  16. Метод join() для объединения строк
  17. Стать Python-разработчиком
  18. Проверка на палиндром
  19. Роль ключевого слова self
  20. Получение текущей даты в Python
  21. Округление банкира в Python
  22. Метод lt для сортировки объектов
  23. Python и Монти Пайтон
  24. Отношения подклассов в Python
  25. Измерение времени выполнения кода в Python
  26. Удаление элементов во время итерации
  27. Переопределение метода __eq__
  28. Лямбда-функции для min/max
  29. Управление IP-адресами через прокси
  30. Аннотации типов в Python
  31. Генераторы данных
  32. Функции высшего порядка в Python
  33. Функциональное программирование в Python
  34. Удаление дубликатов из списка с помощью dict.fromkeys
  35. Объединение списков с использованием itertools.chain
  36. Операции с матрицами в Python
  37. Фильтрация последовательности
  38. Создание таблиц в терминале с PrettyTable
  39. Python: цикл for и оператор присваивания
  40. JMESPath в Python
  41. Оператор «not» в Python
  42. Печать месячного календаря
  43. Работа с библиотекой requests
  44. Скачать видео с YouTube
  45. Распаковка аргументов в Python
  46. Функция enumerate в Python

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