Курс 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"
- Справка по импортированным модулям
- Комментарии в Python
- Работа со временем в Python
- Работа с кортежами в Python
- Прокачанный трейсинг ошибок
- Определение индекса элемента списка
- Работа с геоданными с помощью geopy
- Работа с CSV файлами
- Метод Self в Python
- Функция divmod() в Python
- Создание директории в Python
- Создание тестовых данных с Faker
- Нахождение максимального значения и его индекса в списке
- Роль ключевого слова self
- Работа с изменяемыми списками
- Замена элементов в списке с помощью генераторов списков
- JMESPath в Python
- Удаление falsy-значений из списка с помощью filter
- Метод rxor для операции побитового исключающего «или»
- Модуль math: основные функции
- split() — разделение строки
- Импорт модулей в Python 3.12
- Цикл for в Python
- Получение срезов итераторов
- Многострочные строки в Python
- Замена символов в строке
- Форматирование заголовков в Python
- Создание графики с черепахой
- Библиотека sh: удобные команды терминала
- Установка и использование Virtualenv
- Получение текущей директории
- Настройка нарезки списков
- Работа со словарями в Python
- Генераторы по генератору
- Профилирование с Pandas
- Список и кортеж в Python
- Установка и использование TensorFlow
- Определение локальных переменных в Python
- Удаление дубликатов в pandas
- Работа с контекстным менеджером Pool
- Работа с Path в Python
- JMESPath в Python
- Генерация случайных данных в NumPy
- Lambda Functions in Python















