TGViewer
Библиотека питониста | Python, Django, Flask Библиотека питониста | Python, Django, Flask @pyproglib · 37.2K subscribers
Post #7080 3.15K
🚀 Новое предложение для Python: TypedDict с закрытыми ключами и поддержкой extra_items

TypedDict давно используется для строгой типизации словарей, где известны ключи и их типы. Но до сих пор у него было два ограничения:
➡️ Нельзя было запретить лишние ключи (любая TypedDict допускала дополнительные поля).
➡️ Нельзя было явно указать тип для дополнительных ключей (например, разрешить только строки).

Новый PEP предлагает решить эти проблемы с помощью двух параметров:
➡️ closed=True — создаёт «закрытый» TypedDict, в котором не может быть лишних полей.
➡️ extra_items=... — позволяет указать общий тип для дополнительных ключей.

Как это решение поможет:
— Закрытые TypedDict’ы делают возможным более точный вывод типов для .items() и .values().
— Теперь становится безопасным использовать in для type narrowing.
— API-интерфейсы и legacy-код можно описывать гибко: часть ключей фиксированы, остальные — строго заданного типа.

Пример:
class Movie(TypedDict, closed=True):
name: str
director: str

m: Movie = {"name": "Blade Runner", "director": "Ridley Scott"} ✅
m2: Movie = {"name": "Blade Runner", "year": 1982} ❌ Ошибка


А вот пример с extra items:
class MovieBase(TypedDict, extra_items=int):
name: str

movie: MovieBase = {"name": "Blade Runner", "year": 1982} ✅


В итоге разработчики смогут балансировать между строгой типизацией и гибкостью — без костылей вроде --disable-error-code=typeddict-unknown-key.

🔗 Подробнее можно почитать в PEP

🐸 Библиотека питониста

#буст
  • ❤ 5
  • 👍 5
  • 🔥 2
More from @pyproglib
  1. Oct 9, 2026Post #7855
  2. Oct 9, 2026Showboat и Rodney помогают показать работу ИИ-агента Саймон Уиллисон собирает демонстрации…
  3. Oct 7, 2026🎓 С Днём учителя! Учиться никогда не поздно — особенно когда технологии меняются быстрее,…
  4. Oct 3, 2026📚Напоминаем про наш полный курс «Самоучитель по Python для начинающих» Мы написали и собр…
  5. Oct 2, 2026🎹 Что делать после ChatGPT? Следующий шаг — AI-агенты. Они не просто отвечают на запросы,…
  6. Sep 30, 2026🔥 Последний день для разработчиков AI уже пишет код. Теперь важнее научиться встраивать е…
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 →