Курс 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. Генерация случайных данных в NumPy
  2. Функции в одну строку
  3. Замер времени выполнения кода
  4. Тернарный оператор в Python
  5. TypedDict для kwargs в Python 3.12
  6. Работа с исключениями в Python
  7. Исключение NotImplementedError
  8. Декоратор Ajax required
  9. Округление дробей в Python
  10. Встроенные функции Python
  11. Создание таблиц в Python с PrettyTable
  12. Поиск HTML-элементов с BeautifulSoup
  13. Генераторы в Python
  14. Проблема сравнения словарей
  15. Удаление дубликатов из списка с помощью dict.fromkeys
  16. Поиск шаблона в строке
  17. Декораторы в Python
  18. Импорт модуля из другого каталога
  19. Поиск индекса элемента
  20. Глубокое копирование объектов
  21. Анонимные функции Lambda
  22. Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
  23. Обход словаря в Python
  24. Работа с CSV файлами
  25. Оператор is в Python
  26. Python и Монти Пайтон
  27. Определение имен функций
  28. Метод __irshift__ для Python
  29. Dict Comprehension в Python
  30. Применение функции к списку
  31. Вызов внешних программ в Python с помощью sh
  32. Порядок и длина множеств в Python
  33. Утечки переменных цикла в Python 3.x
  34. Удаление дубликатов из списка с помощью dict.fromkeys
  35. Функции map, filter, reduce
  36. Сокращение ссылок с pyshorteners
  37. Транспонирование 2D-массива с помощью zip
  38. Уникальность ключей в словаре
  39. Проверка элемента в множестве.
  40. Оператор match в Python
  41. Функция zip() — объединение последовательностей
  42. Присвоение значений переменным в Python
  43. Просмотр внешнего файла в Python
  44. Генератор чисел Фибоначчи

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