Курс 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. Метод pos в Python
  3. Преобразование PowerPoint в PDF.
  4. Обмен переменными в Jupyter
  5. Основы работы с базами данных в Python
  6. Распаковка аргументов в Python
  7. Замер времени выполнения кода
  8. Проверка дублей в списке.
  9. Работа с файлами в Python
  10. Декораторы в Python
  11. Работа со строками в Python
  12. Настройка вывода NumPy
  13. Упрощение условных выражений с тернарным оператором
  14. Метод count() для списка
  15. Работа с рекламными данными в Pandas
  16. Функции all() и any() в Python
  17. Работа с YAML в Python: PyYAML.
  18. Удаление дубликатов из списка с помощью dict.fromkeys
  19. Секреты Python
  20. Сглаживание списка
  21. Новшества Flask 2.0
  22. Обучение модели с указанием эпох
  23. Работа с Event() в threading
  24. ChainMap избыточные ключи
  25. Просмотр файла в Jupyter Noteboo
  26. Фильтрация последовательности
  27. Изменение регистра данных
  28. Работа с getopt
  29. Оператор обр. импликации
  30. Форматирование кода на Python
  31. Проверка дубликатов в Python
  32. Структура строк в Python
  33. Подсчет вхождений элементов
  34. PATCH-запрос с библиотекой requests
  35. Лямбда-функции для min/max
  36. Python Метод Union Множеств
  37. Декораторы в Python
  38. Генераторные функции в Python
  39. Передача неизвестных аргументов в Python.
  40. Создание .exe файла с pyinstaller
  41. *args и **kwargs в Python
  42. Копирование файлов с shutil()
  43. Подсчет элементов в Python
  44. Работа с индексами списков
  45. Многоточие в Python
  46. Enum в Python

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