Курс 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"
- Создание копии итератора
- Установка random seed в Python
- Хранение переменных в Python.
- Функция count() в Python
- Работа с датой и временем в Python
- Работа со словарями Python
- Отправка поздравлений по дню рождения
- Возврат нескольких значений
- Управление асинхронными задачами на Python.
- Применение функции map() с лямбда-функциями
- Генераторы в Python
- Работа с zip-архивами в Python
- Работа с модулем glob в Python
- Логирование с Logzero
- Поиск индекса элемента
- Импорт и использование модулей в Python
- Объединение множеств в Python
- Добавление элемента к кортежу
- Python-dateutil — работа с датами
- EMOT преобразование эмодзи в текст
- Работа с типами данных в Python с помощью pydantic.
- Mad Libs Generator
- Управление фоновыми задачами в Python
- Python: изменяемые и неизменяемые коллекции
- Преобразование списков в словарь
- Прокачанный трейсинг ошибок
- Динамическая типизация в Python
- Обмен переменными в Jupyter
- Группы исключений в Python
- Поиск файлов по шаблону
- Транспонирование матрицы
- Работа с комплексными числами
- Лямбда-функции в Python
- Функция print() — вывод информации
- Функция all() в Python
- Методы и функции в Python
- Модуль math: основные функции
- Применение функции к каждому элементу списка
- Генератор списка в Python
- Работа с IP-адресами в Python
- Модуль inspect
- Оператор «or» в Python
- Метод init в Python
- Работа с аргументами командной строки в Python
- Объединение словарей в Python
- Установка библиотек в Python
- Улучшенные подсказки для импорта в Python 3.12















