Курс 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"
- Добавление элемента к кортежу
- Метод __index__ в Python
- Операции с массивами в NumPy
- Проверка дубликатов в Python
- Избегайте пустого списка
- Удаление элементов по срезу
- Цикл for в Python
- Нахождение самого длинного слова в списке с помощью max
- Чтение и запись TOML-конфигов
- Названия переменных
- Принципы Zen of Python
- Отделение звука от видео
- Сложные типы данных в Python
- Декораторы в Python
- Поиск индекса элемента
- Метод join() для объединения строк
- Стать Python-разработчиком
- Проверка на палиндром
- Роль ключевого слова self
- Получение текущей даты в Python
- Округление банкира в Python
- Метод lt для сортировки объектов
- Python и Монти Пайтон
- Отношения подклассов в Python
- Измерение времени выполнения кода в Python
- Удаление элементов во время итерации
- Переопределение метода __eq__
- Лямбда-функции для min/max
- Управление IP-адресами через прокси
- Аннотации типов в Python
- Генераторы данных
- Функции высшего порядка в Python
- Функциональное программирование в Python
- Удаление дубликатов из списка с помощью dict.fromkeys
- Объединение списков с использованием itertools.chain
- Операции с матрицами в Python
- Фильтрация последовательности
- Создание таблиц в терминале с PrettyTable
- Python: цикл for и оператор присваивания
- JMESPath в Python
- Оператор «not» в Python
- Печать месячного календаря
- Работа с библиотекой requests
- Скачать видео с YouTube
- Распаковка аргументов в Python
- Функция enumerate в Python















