Курс 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"
- Метод __irshift__ для Python
- Namedtuple в Python
- Удаление ключей из словаря
- Функция product() из itertools
- Создание .exe файла с pyinstaller
- Функции с необязательными аргументами
- Протокол управления контекстом
- Создание спинбокса в tkinter
- Импорт модулей и пакетов в Python
- Создание словарей в Python
- Проверка списка: any() и all()
- Обмен значений переменных в Python
- Генератор чисел Фибоначчи
- Применение функции map() с лямбда-функциями
- Функция pow() — возвести число в степень
- Преобразование строк в числа с плавающей запятой
- Работа с библиотекой requests
- Переворот списка в Python
- Python: библиотеки и функции
- Проверка на палиндром
- Курсы Яндекс Практикум
- Оптимизация гиперпараметров с Scikit Optimize
- Перемещение и удаление файлов в Python
- Перебор элементов списка в Python
- Хешируемые ключи в Python
- Измерение времени выполнения кода в Python
- Исключение NotImplementedError
- Форматирование строк с f-строками
- Синхронизация потоков с time.sleep()
- Цикл while в Python
- Функция zip() в Python
- Мониторинг памяти с Pympler
- Атрибуты класса и экземпляра
- Проверка файла .py на синтаксис.
- Метод rsub в Python: расширение функциональности вычитания
- Логические операторы в Python
- Объединение множеств в Python
- Работа с итераторами в Python
- Метод count в Python: почему count(», ») возвращает 4?
- Генератор списка в Python
- Метод invert для побитового отрицания
- Управление виртуальными окружениями в Python
- Бесконечные списки в Python
- Модуль math: константы π и e
- Использование модуля math















