Курс 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
- Работа с getopt
- Нахождение отличий в списках
- Создание копии списка в Python
- Область видимости переменных
- Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
- Оператор (*) в Python
- Сериализация и десериализация объектов
- Срезы в Python
- Разделение строк в Python
- Создание функций высшего порядка
- Python Enum Weekday Usage
- Отладка в Python
- Форматирование объектов с модулем pprint
- Python: отличительная особенность — отступы
- Создание таблиц в Python с PrettyTable
- Сравнение def и lambda функций в Python
- Отступы в Python
- Создание словарей в Python
- Работа со стеком в Python
- Построение графиков в Matplotlib
- Аргумент по умолчанию
- Метод remove() для удаления элемента из списка
- Numpy: использование Ellipsis
- Копирование объектов в Python
- Обработка исключений в Python
- Работа с IP-адресами в Python
- Замыкания в Python
- Расчет времени выполнения кода
- Различия символов в Python
- Numpy: объединение массивов
- Управление виртуальными окружениями в Python
- Функции с дополнением
- Оптимизация строк в Python
- Метод matmul для умножения матриц
- Операторы объединения в Python 3.9
- Поиск анаграмм с Counter
- Удаление специальных символов
- Передача параметров в Python
- Разделение строк методом split()
- Ускорение выполнения кода в Python
- Новшества Flask 2.0
- Оператор * в Python
- Фильтрация элементов с помощью islice
- Делегирование в Python
- Преобразование чисел в слова
- Возведение в квадрат с помощью itertools















