Курс 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. Оператор continue в Python
  2. Фильтрация списков с itertools
  3. Цикл for в Python
  4. Преобразование числа в восьмеричную строку
  5. Экспорт данных в файл.
  6. Декодирование байтов в строку
  7. Печать комбинаций в Python с Itertools
  8. Искажение имен в Python
  9. Тест скорости набора текста на Python
  10. Списки в Python
  11. Работа с timedelta
  12. Настройка шрифта и цвета в Tkinter
  13. Numpy: использование Ellipsis
  14. Округление в Python
  15. Правила именования переменных
  16. Поиск частого элемента
  17. Синтаксис переменных цикла в Python
  18. Создание класса в Python
  19. Проверка однородности элементов списка
  20. Удаление специальных символов
  21. Создание виртуальной среды
  22. Сумма элементов списка
  23. Удаление элементов из списка в Python
  24. Метод clear для коллекций
  25. Преобразование символов в нижний регистр
  26. Работа со временем в Python
  27. Преобразование строк в числа в Python
  28. Функция zip() в Python
  29. Функции высшего порядка в Python
  30. Импорт классов из другого файла
  31. Декораторы в Python
  32. Сортировка списка по индексам
  33. Добавление цвета в консоли
  34. Определение объема памяти объекта
  35. Выключение компьютера с помощью Python
  36. Управление браузером с Selenium
  37. Библиотека wikipedia для Python
  38. Преобразование строки в число
  39. Пространство имен в Python
  40. Декораторы с аргументами
  41. Удаление URL-адресов в Python
  42. Метод __iand__ для пользовательских классов
  43. Транспонирование 2D-массива с помощью zip
  44. Нахождение разницы между списками в Python
  45. Копирование объектов в Python
  46. Объединение списков в Python

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