Курс 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.linalg
- Python и Юникод: работа с цифрами
- Поиск с помощью регулярных выражений
- Любовь к Python
- Модуль pprint: улучшение вывода данных
- Поиск элементов BeautifulSoup
- Генерация случайных чисел в Python
- Оператор Walrus в Python
- Принципы Zen of Python
- Методы сравнения множеств
- Работа с датой и временем в Python
- Компиляция регулярных выражений
- Объединение списков в строку
- Многострочные комментарии в Python
- Нахождение разницы между списками в Python
- Retrying в Python: повторные вызовы
- Оператор += в Python
- Создание функций с произвольным количеством аргументов
- Операция += для списков
- ROT13 Шифр Цезаря в Python
- Извлечение новостей с newspaper3k
- Работа с атрибутом dict
- Создание и операции с дробями
- Работа с асинхронными задачами в Python
- Форматирование данных с помощью pprint
- Переворот строки с использованием цикла
- Docstring в Python
- Импорт модулей в Python 3.12
- Наиболее частотные элементы с помощью Counter
- PEP-401: оператор
- Обработка исключений в Python
- Изменение IP-адреса в Python
- Избегайте ошибку FileNotFoundError
- Разработка игры Pong с turtle
- Функция enumerate() в Python
- Функции в одну строку
- TON Smart Challenge #2: участие и подготовка
- Python enumerate() функции
- Замена атрибута в именованном кортеже
- Цикл while в Python
- Логирование с Logzero
- Работа с датой и временем в Python















