Курс 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. Объединение списков в строку
  3. Обновление шаблона base.html
  4. Метод get() для словарей
  5. Создание словарей и множеств в Python
  6. Атрибуты класса и экземпляра
  7. Отладчик pdb: начало работы
  8. Группы исключений в Python
  9. Работа с областями видимости переменных
  10. Проверка типов с помощью isinstance
  11. Python Метод del.
  12. Игра «Виселица» на Python
  13. Отладка кода
  14. Определение относительного пути
  15. Проверка элемента в множестве.
  16. Конвертация текстовых чисел с помощью Numerizer
  17. Удаление специальных символов с помощью re.sub
  18. Просмотр атрибутов и методов класса
  19. Проверка типов с использованием isinstance
  20. Упрощение работы с JSON-данными в Python
  21. Разделение функций на этапы
  22. Работа с getopt
  23. Метод Event.wait() в Python
  24. Вывод с переменной через запятую
  25. Подсчет элементов в Python
  26. Метод join() для объединения элементов строки
  27. Ограничение ресурсов в Python
  28. Область видимости переменных в Python
  29. Объединение множеств в Python
  30. Создание графиков в терминале
  31. Python: изменяемые и неизменяемые коллекции
  32. Отношения подклассов в Python
  33. Переворот строки с использованием цикла
  34. Работа с очередями в Python
  35. Секреты Python
  36. Капитализация строк
  37. Создание и использование модулей в Python
  38. Добавление Progressbar в Python
  39. Импорт модуля из другого каталога
  40. Группировка элементов в словарь
  41. Magic Commands — улучшение работы с Python
  42. Группы исключений в Python
  43. Python Translator: создание локальных переводчиков
  44. Списковое включение в Python
  45. Удаление элементов из списка
  46. Стать Python-разработчиком
  47. Combobox в Tkinter
  48. Проверка класса объекта

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