Курс 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. Расширение операции побитового «и» в Python
  2. Форматирование строк в Python.
  3. Оператор += в Python
  4. Измерение времени выполнения с помощью time
  5. Тернарный оператор в Python
  6. Работа с файловой системой в Python
  7. Построение графиков в терминале с bashplotlib
  8. Функции-генераторы в Python
  9. Сохранение Unicode в JSON
  10. Проверка кортежей.
  11. Работа с argparse
  12. Поиск уникальных элементов строкой в Python
  13. CLI-инструмент howdoi
  14. Эффективная конкатенация строк в Python
  15. Работа с изображениями Pillow
  16. GitHub в Telegram: подписка на уведомления
  17. Условные выражения в Python
  18. Тип данных TypeVarTuple
  19. Метод Enumerate() для списков
  20. Магические методы в Python
  21. Удаление элементов из списка в Python
  22. Генератор бросков кубиков
  23. Объединение списков в Python
  24. Лямбда-функции в Python
  25. Сериализация данных в JSON с помощью json.dumps
  26. Метод remove() для удаления элемента из списка
  27. Создание циклической ссылки
  28. Python: Фильтрация списков с помощью filter()
  29. Аргументы *args и **kwargs
  30. Множественные конструкторы в Python
  31. Срезы в Python
  32. Работа с defaultdictами в Python
  33. Открытие и редактирование скриптов Python
  34. Работа с timedelta
  35. Сравнение строк в Python
  36. Искажение имен в Python
  37. Генераторы списков
  38. Метод get() для словарей
  39. Поиск индекса элемента
  40. Работа с модулем Calendar
  41. Python Calendar Usage
  42. Генератор списка в Python
  43. Регулярные выражения в Python

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