Курс 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"
- Генерация случайных данных в NumPy
- Функции в одну строку
- Замер времени выполнения кода
- Тернарный оператор в Python
- TypedDict для kwargs в Python 3.12
- Работа с исключениями в Python
- Исключение NotImplementedError
- Декоратор Ajax required
- Округление дробей в Python
- Встроенные функции Python
- Создание таблиц в Python с PrettyTable
- Поиск HTML-элементов с BeautifulSoup
- Генераторы в Python
- Проблема сравнения словарей
- Удаление дубликатов из списка с помощью dict.fromkeys
- Поиск шаблона в строке
- Декораторы в Python
- Импорт модуля из другого каталога
- Поиск индекса элемента
- Глубокое копирование объектов
- Анонимные функции Lambda
- Удаление дубликатов с сохранением порядка с помощью dict.fromkeys
- Обход словаря в Python
- Работа с CSV файлами
- Оператор is в Python
- Python и Монти Пайтон
- Определение имен функций
- Метод __irshift__ для Python
- Dict Comprehension в Python
- Применение функции к списку
- Вызов внешних программ в Python с помощью sh
- Порядок и длина множеств в Python
- Утечки переменных цикла в Python 3.x
- Удаление дубликатов из списка с помощью dict.fromkeys
- Функции map, filter, reduce
- Сокращение ссылок с pyshorteners
- Транспонирование 2D-массива с помощью zip
- Уникальность ключей в словаре
- Проверка элемента в множестве.
- Оператор match в Python
- Функция zip() — объединение последовательностей
- Присвоение значений переменным в Python
- Просмотр внешнего файла в Python
- Генератор чисел Фибоначчи















