Курс 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. Создание графики с черепахой
  3. Удаление элемента из списка
  4. Класс Counter() для подсчета элементов
  5. split() — разделение строки
  6. Преобразование данных в Python
  7. Генераторы в Python
  8. Форматирование строк с f-строками
  9. Вложенные функции в Python
  10. Colorama: окрашивание текста в Python
  11. Оператор Walrus: правильное использование
  12. Мощь вложенных функций в Python
  13. Избегание изменяемых аргументов
  14. Объединение кортежей в Python
  15. Тип данных TypeVarTuple
  16. Работа с модулем Calendar
  17. Моржовый оператор в Python 3.8
  18. Работа с кортежами в Python
  19. Декораторы для регистрации функций
  20. Значения по умолчанию в Python
  21. Работа с путями в Python
  22. Передача аргументов в Python
  23. Функция eval() в Python
  24. Создание словаря через dict comprehension
  25. Анонимные функции Lambda
  26. Парсинг веб-страниц с Beautiful Soup
  27. Поиск индекса элемента
  28. Оптимизация параметров в Python
  29. Работа с каталогами в Python
  30. Абстракции словарей и множеств в Python
  31. Замена переменных в Python
  32. Управление IP-адресами через прокси
  33. Создание таблиц в Python с PrettyTable
  34. Проверка класса объекта
  35. Работа с YAML в Python: PyYAML.
  36. Работа с файлами в Python
  37. Установка библиотек в Python
  38. Обработка исключений в Python 3
  39. Модуль pprint: улучшение вывода данных
  40. Объединение строк с помощью метода join
  41. Метод get для словаря
  42. Запуск внешних программ с subprocess
  43. Игра «Виселица» на Python

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