Курс 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"
- Генераторы данных
- Метод pos в Python
- Преобразование PowerPoint в PDF.
- Обмен переменными в Jupyter
- Основы работы с базами данных в Python
- Распаковка аргументов в Python
- Замер времени выполнения кода
- Проверка дублей в списке.
- Работа с файлами в Python
- Декораторы в Python
- Работа со строками в Python
- Настройка вывода NumPy
- Упрощение условных выражений с тернарным оператором
- Метод count() для списка
- Работа с рекламными данными в Pandas
- Функции all() и any() в Python
- Работа с YAML в Python: PyYAML.
- Удаление дубликатов из списка с помощью dict.fromkeys
- Секреты Python
- Сглаживание списка
- Новшества Flask 2.0
- Обучение модели с указанием эпох
- Работа с Event() в threading
- ChainMap избыточные ключи
- Просмотр файла в Jupyter Noteboo
- Фильтрация последовательности
- Изменение регистра данных
- Работа с getopt
- Оператор обр. импликации
- Форматирование кода на Python
- Проверка дубликатов в Python
- Структура строк в Python
- Подсчет вхождений элементов
- PATCH-запрос с библиотекой requests
- Лямбда-функции для min/max
- Python Метод Union Множеств
- Декораторы в Python
- Генераторные функции в Python
- Передача неизвестных аргументов в Python.
- Создание .exe файла с pyinstaller
- *args и **kwargs в Python
- Копирование файлов с shutil()
- Подсчет элементов в Python
- Работа с индексами списков
- Многоточие в Python
- Enum в Python















