Курс 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. Работа с getopt
  3. Нахождение отличий в списках
  4. Создание копии списка в Python
  5. Область видимости переменных
  6. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  7. Оператор (*) в Python
  8. Сериализация и десериализация объектов
  9. Срезы в Python
  10. Разделение строк в Python
  11. Создание функций высшего порядка
  12. Python Enum Weekday Usage
  13. Отладка в Python
  14. Форматирование объектов с модулем pprint
  15. Python: отличительная особенность — отступы
  16. Создание таблиц в Python с PrettyTable
  17. Сравнение def и lambda функций в Python
  18. Отступы в Python
  19. Создание словарей в Python
  20. Работа со стеком в Python
  21. Построение графиков в Matplotlib
  22. Аргумент по умолчанию
  23. Метод remove() для удаления элемента из списка
  24. Numpy: использование Ellipsis
  25. Копирование объектов в Python
  26. Обработка исключений в Python
  27. Работа с IP-адресами в Python
  28. Замыкания в Python
  29. Расчет времени выполнения кода
  30. Различия символов в Python
  31. Numpy: объединение массивов
  32. Управление виртуальными окружениями в Python
  33. Функции с дополнением
  34. Оптимизация строк в Python
  35. Метод matmul для умножения матриц
  36. Операторы объединения в Python 3.9
  37. Поиск анаграмм с Counter
  38. Удаление специальных символов
  39. Передача параметров в Python
  40. Разделение строк методом split()
  41. Ускорение выполнения кода в Python
  42. Новшества Flask 2.0
  43. Оператор * в Python
  44. Фильтрация элементов с помощью islice
  45. Делегирование в Python
  46. Преобразование чисел в слова
  47. Возведение в квадрат с помощью itertools

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