Logo of Jet School
ГлавнаяОтзывыНаши курсыАкцииПроекты
О насБлогНовостиМероприятияГалереяГлоссарийВакансии
Контакты
AZ
RU
AZ
RU

JET School

Вдохновляющее образование для яркого будущего

Баку, ул. Олимпия 6А (около станции метро Гянджлик, рядом с Министерством Спорта)
+994 70 983 66 99+994 70 983 66 99info@jetschool.az
Понедельник - Воскресенье: 09:30 - 22:00

Навигация

  • Главная
  • Отзывы
  • Проекты
  • Выпускники
  • Предложения
  • Вакансии
  • Кадры с занятий

Направления обучения

  • Курс IT и компьютерной инжеренерии
  • Курс кибербезопасности
  • Курс Робототехники
  • Летняя школа: IT и программирование
  • Курс UX/UI дизайна
  • Курс AI Engineering
  • Курс по разработки 2D игр на Unity

Ресурсы

  • Блог
  • Новости
  • События
  • Глоссарий

© 2021 – 2026 JET School. Авторские права защищены.

Что такое Slots?

JET Schoolwww.jetschool.az

Что такое Slots?

В Python по умолчанию каждый экземпляр класса имеет внутренний словарь __dict__, в котором хранятся все его атрибуты. Это удобно, но занимает много памяти, особенно когда создаётся множество объектов.

Механизм __slots__ позволяет предварительно определить набор допустимых атрибутов для объектов и избежать создания __dict__, тем самым экономя память и повышая производительность.

Зачем использовать __slots__?

  • Оптимизация памяти
  • Повышение производительности
  • Ограничение атрибутов объекта

Пример:


class Person:

__slots__ = ['name', 'age']


def __init__(self, name, age):

self.name = name

self.age = age


p = Person("Alex", 30)

print(p.name)

Если вы попробуете добавить p.city = "Moscow" — получите AttributeError, потому что атрибут city не указан в __slots__.

Важно помнить:

  • Объекты не будут иметь __dict__, если явно не добавить его в __slots__.
  • Динамически добавлять новые атрибуты нельзя.
  • Сложное наследование с __slots__ требует аккуратности.

Когда использовать:

  • В системах, где создаются тысячи и миллионы объектов
  • В приложениях, критичных к памяти и скорости (например, веб-серверы, игры, аналитика данных)
+994 70 983 66 99www.jetschool.az

В Python по умолчанию каждый экземпляр класса имеет внутренний словарь __dict__, в котором хранятся все его атрибуты. Это удобно, но занимает много памяти, особенно когда создаётся множество объектов.

Механизм __slots__ позволяет предварительно определить набор допустимых атрибутов для объектов и избежать создания __dict__, тем самым экономя память и повышая производительность.

Зачем использовать __slots__?

  • Оптимизация памяти
  • Повышение производительности
  • Ограничение атрибутов объекта

Пример:

class Person:

__slots__ = ['name', 'age']

def __init__(self, name, age):

self.name = name

self.age = age

p = Person("Alex", 30)

print(p.name)

Если вы попробуете добавить p.city = "Moscow" — получите AttributeError, потому что атрибут city не указан в __slots__.

Важно помнить:

  • Объекты не будут иметь __dict__, если явно не добавить его в __slots__.
  • Динамически добавлять новые атрибуты нельзя.
  • Сложное наследование с __slots__ требует аккуратности.

Когда использовать:

  • В системах, где создаются тысячи и миллионы объектов
  • В приложениях, критичных к памяти и скорости (например, веб-серверы, игры, аналитика данных)

Заполните форму чтобы узнать больше о наших IT курсах

Укажите возраст (сколько вам лет?)
Выберите язык обучения
...

Связанные термины:

Начни изучать IT уже сегодня

Категория: Программирование
Атрибут
Boolean