Курс 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. Поиск подстроки в строке
  2. Работа с NumPy.linalg
  3. Python и Юникод: работа с цифрами
  4. Поиск с помощью регулярных выражений
  5. Любовь к Python
  6. Модуль pprint: улучшение вывода данных
  7. Поиск элементов BeautifulSoup
  8. Генерация случайных чисел в Python
  9. Оператор Walrus в Python
  10. Принципы Zen of Python
  11. Методы сравнения множеств
  12. Работа с датой и временем в Python
  13. Компиляция регулярных выражений
  14. Объединение списков в строку
  15. Многострочные комментарии в Python
  16. Нахождение разницы между списками в Python
  17. Retrying в Python: повторные вызовы
  18. Оператор += в Python
  19. Создание функций с произвольным количеством аргументов
  20. Операция += для списков
  21. ROT13 Шифр Цезаря в Python
  22. Извлечение новостей с newspaper3k
  23. Работа с атрибутом dict
  24. Создание и операции с дробями
  25. Работа с асинхронными задачами в Python
  26. Форматирование данных с помощью pprint
  27. Переворот строки с использованием цикла
  28. Docstring в Python
  29. Импорт модулей в Python 3.12
  30. Наиболее частотные элементы с помощью Counter
  31. PEP-401: оператор
  32. Обработка исключений в Python
  33. Изменение IP-адреса в Python
  34. Избегайте ошибку FileNotFoundError
  35. Разработка игры Pong с turtle
  36. Функция enumerate() в Python
  37. Функции в одну строку
  38. TON Smart Challenge #2: участие и подготовка
  39. Python enumerate() функции
  40. Замена атрибута в именованном кортеже
  41. Цикл while в Python
  42. Логирование с Logzero
  43. Работа с датой и временем в Python

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