Курс 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"
- Подсчет элементов с помощью Counter
- Добавление элементов в список: append() vs extend()
- Структурирование именованных констант
- Присвоение и ссылки
- Функции map, filter и reduce
- Работа с исключениями в Python
- Проверка класса объекта
- Встраивание HTML в Jupyter Notebook
- Принципы программирования
- Очистка данных с Pandas
- Удаление знаков препинания в Python
- %pinfo: получение информации об объекте
- Преобразование чисел в восьмеричную строку
- Запрос пароля с помощью getpass
- Печать календаря в Python
- Профилирование с cProfile
- Хеширование паролей с использованием salt
- Изучение объектов с помощью dir()
- Освоение Python
- Разработка Telegram-ботов
- Утечки переменных цикла в Python 3.x
- Функция rsplit() в Python
- Сериализация и десериализация объектов
- Определение относительного пути
- Форматирование вывода списков
- Управление мышью и клавиатурой с Pyautogui
- Работа с IP-адресами в Python
- Проверка дублей в списке.
- Умножение строк и списков
- Вывод баннеров
- Установка и использование Python-dateutil
- Замеры производительности в Python
- Python Метод sleep() из time
- Методы в Python
- Зарезервированные слова в Python
- Парсинг веб-страниц с Beautiful Soup
- Работа с файлами в Python
- Установка random seed в Python
- Переопределение метода __eq__
- Просмотр файла в Jupyter Noteboo
- Подсчет часто встречающихся элементов
- Удаление ключа из словаря в Python
- Нахождение отличий в списках
- Объединение списков в строку















