Курс 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 за 14 дней
- Сортировка с параметром key
- Удаление файлов с shutil.os.remove()
- Структурирование именованных констант
- Блок try-except-else
- Оптимизация гиперпараметров с Scikit Optimize
- Настройка логгера Logzero
- Преобразование строк в числа с плавающей запятой
- Работа со словарями с defaultdict из collections
- Значения по умолчанию в Python
- Фильтрация элементов с помощью islice
- Блок else в циклах Python
- Работа с Path в Python
- Работа с itertools
- Измерение времени выполнения кода с помощью time
- Создание обратного итератора
- Списки: объединение, изменение
- Поиск индексов подстроки
- Метод enumerate() в Python
- Декораторы классов
- *args и **kwargs в Python
- EMOT преобразование эмодзи в текст
- Работа с функцией next() в Python
- Фильтрация входных данных в Python
- Функциональное программирование.
- Обязательные аргументы в Python
- Принцип одной функции
- Сравнение строк в Python
- Метод clear для коллекций
- Аргумент по умолчанию
- Отправка POST-запроса в REST API
- Капитализация строк
- Объединение словарей в Python
- Правила именования переменных
- Оператор continue в Python
- Функция __init__ в Python
- Перемешивание списка с shuffle()
- GitHub в Telegram: подписка на уведомления
- Вычисление фазы комплексного числа
- Метод get() для словарей
- Получение текущей даты и времени с помощью datetime
- lru_cache оптимизация функций
- Управление асинхронными задачами с помощью Semaphore
- Beautiful Soup — извлечение данных из HTML
- Преобразование чисел в Python
- Создание namedtuple списком полей















