TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #4704 3.86K

Forwarded from Метод утёнка

Если взять конкретный язык, то всё может быть ещё хуже.

В Python, например, тип bool наследуется от int, поэтому True и False — это полноценные объекты — целые числа. Каждый объект в CPython несёт накладные расходы:
🔘PyObject header — счётчик ссылок + указатель на тип (~16 байт на 64-бит)
🔘PyLongObject — структура для хранения целых чисел произвольной длины (~12 байт дополнительно)

Можно проверить самостоятельно:
import sys
print(sys.getsizeof(True)) # 28
print(sys.getsizeof(False)) # 28


Почему так расточительно?
Python оптимизирован для удобства и гибкости, а не для экономии памяти. Зато True и False — синглтоны (существует только по одному экземпляру каждого), так что в реальных программах это не создаёт проблем.

Для компактного хранения множества булевых значений используют numpy.array с dtype=bool (1 байт на значение) или битовые массивы.

@devs_books
  • 🤔 4
  • ❤ 2
More from @zen_of_python
  1. Sep 23, 2026Что меняет re.prefixmatch() в Python 3.15 re.match() проверяет совпадение только в начале…
  2. Sep 23, 2026Pyodide разрешил публиковать WASM-колёса прямо в PyPI В Pyodide 314.0 появилась прямая пуб…
  3. Sep 22, 2026Как применять структурное сопоставление с образцом к деревьям в Python Структурное сопоста…
  4. Sep 22, 2026Почему в Python стоит подменять свой интерфейс, а не httpx Если бизнес-тест напрямую подме…
  5. Sep 22, 2026Как точно типизировать *args и **kwargs в Python Запись *args: tuple[int, str] выглядит ка…
  6. Sep 21, 2026Как точечно сравнивать скорость функций Python с tprof Профилировщик помогает найти медлен…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →