TGViewer
Zen of Python Zen of Python @zen_of_python · 18.8K subscribers
Post #2569 4.76K
​Что полезного в свежей версии Python: необязательные элементы TypedDict

Существует такой интересный конструкт typing.TypedDict.Он позволяет добавлять подсказки о типах данных словарю:

class Point2D(TypedDict):
x: int
y: int
label: str

a: Point2D = {'x': 1, 'y': 2, 'label': 'good'} # OK
b: Point2D = {'z': 3, 'label': 'bad'} # Не пройдет проверку

Теперь TypedDict имеет необязательные элементы:

class Movie(TypedDict):
title: str
year: NotRequired[int]

m1: Movie = {"title": "Black Panther", "year": 2018} # OK
m2: Movie = {"title": "Star Wars"} # OK (год необязателен)
m3: Movie = {"year": 2022} # Ошибка (не заполнено обязательное поле)

Спасибо подписчику @Trizalio за годную подсказку.

Если вы знаете, о какой еще годной фиче из свежих релизов Python рассказать, поделитесь в комментариях. Интересные ответы мы превратим в посты с вашим упоминанием.

#лучшиепрактики
  • 👍 23
  • ❤ 1
More from @zen_of_python
  1. Oct 11, 2026Почему копия контекста не делает словарь отдельным contextvars помогает хранить request ID…
  2. Oct 11, 2026Почему короткие паузы сборщика мусора обходятся памятью В CPython подсчёт ссылок освобожда…
  3. Oct 11, 2026Как проверить, что мок заменил нужную зависимость Если service.py делает from client impor…
  4. Oct 10, 2026Post #5048
  5. Oct 10, 2026Showboat и Rodney помогают показать работу ИИ-агента Саймон Уиллисон собирает демонстрации…
  6. Oct 10, 2026Почему max_workers не ограничивает очередь задач ThreadPoolExecutor(max_workers=8) разреша…
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 →