Курс 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. kwargs в Python
  2. Работа с кортежами в Python
  3. Преобразование числа в список цифр
  4. Создание панели меню Tkinter
  5. Создание namedtuple списком полей
  6. Метод __ilshift__ для битового сдвига влево
  7. Отладчик pdb: начало работы
  8. Метод join() для объединения строк
  9. Ускорение обработки данных с %autoawait
  10. Проверка переменных окружения в Python
  11. Управление асинхронными задачами на Python.
  12. Создание графиков в терминале
  13. Метод __call__ в Python
  14. Преобразование символов в нижний регистр
  15. Namedtuple в Python
  16. Библиотека sh: использование команд bash в Python
  17. Активация Matplotlib в Jupyter
  18. Импорт с альтернативным именем
  19. Создание словарей и множеств в Python
  20. Основы работы с os
  21. F-строки в Python 3.8
  22. Локальные переменные.
  23. Отображение HTML кода в Python
  24. Оптимизация памяти с помощью __slots__
  25. Генерация строк с .join()
  26. Сложение матриц в NumPy
  27. Генератор списка с условием if
  28. Работа с индексами списков
  29. Анонимные функции в Python
  30. Генератор бросков кубиков
  31. Взаимодействие с sys
  32. Python: отличительная особенность — отступы
  33. Извлечение аудио из видео
  34. Обновление и получение данных в SQLite
  35. Модуль antigravity: генерация координат
  36. Отладка кода
  37. Получение ID процесса
  38. Генераторы списков в Python
  39. Работа с атрибутом dict
  40. Пропуск начальных строк с помощью dropwhile()
  41. Хэш-функции в Python
  42. Сортировка данных с лямбда-функциями
  43. Разделение строки в Python
  44. Удаление эмодзи с помощью pandas
  45. Создание и обучение модели с Keras

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