Использовать подпись одной функции как тип другой функцииPython

Программы на Python
Ответить
Anonymous
 Использовать подпись одной функции как тип другой функции

Сообщение Anonymous »

Если я напишу обертку вокруг функции, как мне правильно ввести *args и **kwargs?
В этом крошечном примере (просто крошечный автономный минимальный код, не предназначенный для связи с тем, что существует в реальной жизни)

Код: Выделить всё

# assume a fully typed log function somewhere, on which I have no control at all.
# def log(...)->... :

def debug(*args, **kwargs):
log(level=debug, *args, **kwargs)
Мне бы хотелось вводить аргументы и kwargs для отладки точно так же, как для журналов:

Код: Выделить всё

def debug(*args:logs.args, **kwargs:logs.kwargs) -> logs.return:  # invalid, but you get the idea
...
Если я правильно понимаю, ввод.ParamSpec здесь не поможет, поскольку log уже определен.
inspect.signature слишком динамичен, чтобы его можно было использовать при проверке статического типа.
Есть ли способ добиться того, чего я хочу?>
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»