Українська
Відкрити в Telegram

Пост__slots__ - коли обʼєктів багато

25 вересня 2026
P
Python Nation🐍🇺🇦
__slots__ - коли обʼєктів багато За замовчуванням кожен обʼєкт у пайтоні тримає свій __dict__, тобто словник з атрибутами. Це зручно бо можна додати будь-який атрибут на льоту, але словник займає памʼять. Коли обʼєктів кілька то це не є проблемою, а от коли їх багато, то вже стає помітно по пам'яті. __slots__ каже класу: атрибути тільки ці, словник не потрібен. class Receipt: __slots__ = ("id", "total", "paid") def __init__(self, id, total, paid): self.id = id self.total = total self.paid = paid Що це дає: - менше памʼяті на кожен обʼєкт (немає __dict__) - трохи швидший доступ до атрибутів Ціна - гнучкість. Новий атрибут вже не додаси: r = Receipt(1, 100, True) r.discount = 10 # AttributeError І ще пара нюансів: наслідування працює, але кожен клас у ланцюгу має свої __slots__, інакше __dict__ повернеться. З @dataclass теж дружить - просто @dataclass(slots=True). Коротко: якщо клас створюється багато разів і набір полів фіксований - __slots__ економить реальну памʼять. Для звичайних класів це зайве.
1 · 276 ·

Поруч у стрічці

PPython Nation🐍🇺🇦Python 3.15 додає lazy імпорти і це реально корисно Якщо ти хоч раз запускав CLI-утиліту або скрипт і думав "чому воно так довго стартує" - ця фіча для тебе. ПрPPython Nation🐍🇺🇦True - це насправді 1 Багато хто не знає, але bool у пайтоні це підклас int. Тобто True дорівнює 1, а False дорівнює 0. Ними навіть можна рахувати: True + True
це повідомлення
PPython Nation🐍🇺🇦Чому 256 is 256 - True, а 257 is 257 - не завжди У пайтоні є оператор is, який перевіряє не рівність значень, а те, чи це один і той самий обʼєкт у памʼяті. І тPPython Nation🐍🇺🇦Чому None перевіряють через is, а не == У пайтоні прийнято писати if x is None, а не if x == None. І це не просто стиль. None - це єдиний обʼєкт на всю програму
PPython Nation🐍🇺🇦Python Nation🐍🇺🇦@pythonnation · канал · Технології
1 925підписників184середнє охоплення поста
Стрічка майданчика Відкрити в Telegram

Відкрита публічна стрічка з пошукового індексу ChatCrawler — «Google по публічному Telegram»; оновлюється в міру обходу майданчика. Час — UTC.

Лише публічний контент, офіційний API Telegram. Про проєкт · Питання · Межі індексу · Прибрати сторінку з видачі · Каталог · Пошук · Як ми рахуємо