Курс 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. Метод __irshift__ для Python
  2. Namedtuple в Python
  3. Удаление ключей из словаря
  4. Функция product() из itertools
  5. Создание .exe файла с pyinstaller
  6. Функции с необязательными аргументами
  7. Протокол управления контекстом
  8. Создание спинбокса в tkinter
  9. Импорт модулей и пакетов в Python
  10. Создание словарей в Python
  11. Проверка списка: any() и all()
  12. Обмен значений переменных в Python
  13. Генератор чисел Фибоначчи
  14. Применение функции map() с лямбда-функциями
  15. Функция pow() — возвести число в степень
  16. Преобразование строк в числа с плавающей запятой
  17. Работа с библиотекой requests
  18. Переворот списка в Python
  19. Python: библиотеки и функции
  20. Проверка на палиндром
  21. Курсы Яндекс Практикум
  22. Оптимизация гиперпараметров с Scikit Optimize
  23. Перемещение и удаление файлов в Python
  24. Перебор элементов списка в Python
  25. Хешируемые ключи в Python
  26. Измерение времени выполнения кода в Python
  27. Исключение NotImplementedError
  28. Форматирование строк с f-строками
  29. Синхронизация потоков с time.sleep()
  30. Цикл while в Python
  31. Функция zip() в Python
  32. Мониторинг памяти с Pympler
  33. Атрибуты класса и экземпляра
  34. Проверка файла .py на синтаксис.
  35. Метод rsub в Python: расширение функциональности вычитания
  36. Логические операторы в Python
  37. Объединение множеств в Python
  38. Работа с итераторами в Python
  39. Метод count в Python: почему count(», ») возвращает 4?
  40. Генератор списка в Python
  41. Метод invert для побитового отрицания
  42. Управление виртуальными окружениями в Python
  43. Бесконечные списки в Python
  44. Модуль math: константы π и e
  45. Использование модуля math

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