Курс 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 за 14 дней
  2. Сортировка с параметром key
  3. Удаление файлов с shutil.os.remove()
  4. Структурирование именованных констант
  5. Блок try-except-else
  6. Оптимизация гиперпараметров с Scikit Optimize
  7. Настройка логгера Logzero
  8. Преобразование строк в числа с плавающей запятой
  9. Работа со словарями с defaultdict из collections
  10. Значения по умолчанию в Python
  11. Фильтрация элементов с помощью islice
  12. Блок else в циклах Python
  13. Работа с Path в Python
  14. Работа с itertools
  15. Измерение времени выполнения кода с помощью time
  16. Создание обратного итератора
  17. Списки: объединение, изменение
  18. Поиск индексов подстроки
  19. Метод enumerate() в Python
  20. Декораторы классов
  21. *args и **kwargs в Python
  22. EMOT преобразование эмодзи в текст
  23. Работа с функцией next() в Python
  24. Фильтрация входных данных в Python
  25. Функциональное программирование.
  26. Обязательные аргументы в Python
  27. Принцип одной функции
  28. Сравнение строк в Python
  29. Метод clear для коллекций
  30. Аргумент по умолчанию
  31. Отправка POST-запроса в REST API
  32. Капитализация строк
  33. Объединение словарей в Python
  34. Правила именования переменных
  35. Оператор continue в Python
  36. Функция __init__ в Python
  37. Перемешивание списка с shuffle()
  38. GitHub в Telegram: подписка на уведомления
  39. Вычисление фазы комплексного числа
  40. Метод get() для словарей
  41. Получение текущей даты и времени с помощью datetime
  42. lru_cache оптимизация функций
  43. Управление асинхронными задачами с помощью Semaphore
  44. Beautiful Soup — извлечение данных из HTML
  45. Преобразование чисел в Python
  46. Создание namedtuple списком полей

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