Python 3.10+typingпонятие
typing.ParamSpecKwargs
обобщения и параметры
Тип атрибута P.kwargs у ParamSpec — представляет именованные аргументы захваченной сигнатуры.
Синтаксис
P.kwargs # тип ParamSpecKwargs
Как и с P.args, сам тип по имени не пишут — в обёртке достаточно **kwargs: P.kwargs. И P.args, и P.kwargs должны присутствовать вместе на одной функции: одиночное использование проверяльщик считает ошибкой.
Примеры
from typing import ParamSpec, ParamSpecKwargs
P = ParamSpec('P')
print(isinstance(P.kwargs, ParamSpecKwargs)) # → True
print(P.kwargs) # → P.kwargs
print(P.kwargs.__origin__ is P) # → True
def wrapper(*args: P.args, **kwargs: P.kwargs) -> None: pass
print(isinstance(P.args, ParamSpecKwargs)) # → False
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности