Курс 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"
- Печать в одной строке
- Объединение списков в строку
- Обновление шаблона base.html
- Метод get() для словарей
- Создание словарей и множеств в Python
- Атрибуты класса и экземпляра
- Отладчик pdb: начало работы
- Группы исключений в Python
- Работа с областями видимости переменных
- Проверка типов с помощью isinstance
- Python Метод del.
- Игра «Виселица» на Python
- Отладка кода
- Определение относительного пути
- Проверка элемента в множестве.
- Конвертация текстовых чисел с помощью Numerizer
- Удаление специальных символов с помощью re.sub
- Просмотр атрибутов и методов класса
- Проверка типов с использованием isinstance
- Упрощение работы с JSON-данными в Python
- Разделение функций на этапы
- Работа с getopt
- Метод Event.wait() в Python
- Вывод с переменной через запятую
- Подсчет элементов в Python
- Метод join() для объединения элементов строки
- Ограничение ресурсов в Python
- Область видимости переменных в Python
- Объединение множеств в Python
- Создание графиков в терминале
- Python: изменяемые и неизменяемые коллекции
- Отношения подклассов в Python
- Переворот строки с использованием цикла
- Работа с очередями в Python
- Секреты Python
- Капитализация строк
- Создание и использование модулей в Python
- Добавление Progressbar в Python
- Импорт модуля из другого каталога
- Группировка элементов в словарь
- Magic Commands — улучшение работы с Python
- Группы исключений в Python
- Python Translator: создание локальных переводчиков
- Списковое включение в Python
- Удаление элементов из списка
- Стать Python-разработчиком
- Combobox в Tkinter
- Проверка класса объекта















