Русский
Открыть в Telegram

Пост Как точно типизировать *args и **kwargs в Python

22 сентября 2026
Z
Zen of Python
Фотография
нажмите — покажем
Как точно типизировать *args и **kwargs в Python Запись *args: tuple[int, str] выглядит как тип всего кортежа, но проверщик читает её иначе: каждый позиционный аргумент должен быть таким кортежем. У **kwargs: dict[...] тип также относится к каждому именованному аргументу. Типизатор здесь не телепат. Для разнородных аргументов нужен Unpack: Unpack[tuple[int, str]] задаёт типы и порядок позиционных аргументов. Именованные описываются через TypedDict и Unpack[Kw], поэтому проверщик знает тип каждого ключа. В разборе аннотаций показаны и необязательные ключи: все сразу через total=False либо отдельные через NotRequired. До Python 3.12 эти типы берутся из typing_extensions. Подход пригодится обёрткам, которые передают аргументы функции с той же сигнатурой.
15 · 1.5K ·

Рядом в ленте

ZZen of PythonКак писать Python-скрипты, которые удобно запускать в пайплайнах В разборе Bite code! собраны приёмы, которые оставляют однофайловый скрипт простым, но делают еZZen of PythonКак точечно сравнивать скорость функций Python с tprof Профилировщик помогает найти медленную функцию. Но после каждой правки снова измерять всю программу неудо
это сообщение
ZZen of PythonПочему в Python стоит подменять свой интерфейс, а не httpx Если бизнес-тест напрямую подменяет httpx.Client и httpx.Response, даже проверка пустого списка требуZZen of PythonКак применять структурное сопоставление с образцом к деревьям в Python Структурное сопоставление особенно выразительно на рекурсивных структурах. Автор моделиру

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Границы индекса · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем