Курс 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. Обмен данными с asyncio.Queue
  3. Мониторинг памяти с Pympler
  4. Цикл for в Python
  5. Создание словарей и множеств в Python
  6. Аннотации типов в Python
  7. Установка виртуального окружения Python
  8. Переворот последовательности
  9. List Comprehension Tutorial
  10. Преобразование PowerPoint в PDF.
  11. Изменение регистра данных
  12. Удаление элемента из списка
  13. enumerate() в Python для работы с индексами
  14. Методы split() и join() — Python строк.
  15. Python Тесты и Гайды
  16. Экранирование символов в Python
  17. Замеры производительности в Python
  18. Создание веб-приложения с Flask
  19. Генераторные функции в Python
  20. Поиск индекса элемента в списке
  21. Замыкания в Python
  22. Работа с пакетами
  23. Преобразование документов в PDF с помощью Spire.Office
  24. Атрибуты класса и экземпляра
  25. Сравнение строк в Python
  26. Частичное совпадение ввода
  27. Разделение строк в Python
  28. Объединение словарей в Python
  29. Установка библиотек в Python
  30. Работа с collections в Python
  31. Функции min(), max(), sum()
  32. Тестирование модели в PyTorch
  33. Поиск частых элементов в списке
  34. Сортировка списка по индексам
  35. Оператор is в Python
  36. Сортировка HTML-элементов
  37. Преобразование генераторов в циклы
  38. Модуль inspect: получение информации о объектах
  39. Оптимизация сравнения в Python
  40. Удаление файлов в Python
  41. Инверсия списков и строк в Python
  42. Определение наиболее частого элемента с помощью collections.Counter
  43. Python и Монти Пайтон
  44. Замена символов в строке
  45. Объединение списков с помощью zip

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