Курс 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. Работа с буфером обмена на Python
  3. Логирование с Logzero: ротация файла
  4. Метод get для словарей
  5. Работа с Path в Python
  6. Форматирование строк в Python.
  7. Генерация случайных чисел в Python
  8. Условные выражения в Python
  9. Вычисление времени выполнения
  10. Скачать видео с YouTube
  11. Функция findall() для поиска вхождений строки
  12. Удаление элементов из списка в Python.
  13. Функция zip() в Python
  14. Декораторы в Python
  15. f-строки в формате строк
  16. Создание .exe файла с pyinstaller
  17. Конкатенация строк с join() в Python
  18. Метод join() для объединения строк
  19. Возврат нескольких значений
  20. Работа с YAML в Python
  21. Разработка Telegram-ботов
  22. Функция all() в Python
  23. Поиск индекса элемента
  24. Codecademy в Telegram
  25. Подсказки типов в Python
  26. Метод count в Python: почему count(», ») возвращает 4?
  27. Декораторы в Python
  28. Функция zip() для объединения списков
  29. Модуль subprocess: запуск внешних команд
  30. Удаление специальных символов с помощью re.sub
  31. Модуль os: работа с файлами и папками
  32. Списки в Python: синтаксис представления
  33. Исключение NotImplementedError
  34. Проверка индексов коллекции
  35. Карта бомбоубежищ в Москве и Питере
  36. split() — разделение строки
  37. Добавление кнопки в tkinter
  38. lru_cache оптимизация функций
  39. Хранение данных
  40. Конвертация коллекций в Python.
  41. GitHub в Telegram: подписка на уведомления
  42. Создание словаря в Python
  43. Бесконечная проверка в Python
  44. Поиск подстроки в строке
  45. Преобразование кортежа в словарь.
  46. Группы исключений в Python
  47. Возврат значений из генератора

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