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