Может ли объект иметь подсказку типа Callable без указания входных аргументов и возвращаемого значения? - PullRequest
0 голосов
/ 08 ноября 2019

Следующий код ...

import typing
func:typing.Callable[[int, float], str]

Аннотирует func как вызываемый, принимающий два входа. Два входа - int и float. Это также указывает на то, что возвращаемое значение является строкой.

Можно ли ввести подсказку как вызываемое без указания типов входного аргумента или типа вывода?

Например:

def decorator(f:Callable):
    def _(*args, **kwargs)
        r = f(*map(str, args), **kwargs)
        return r
    return _

1 Ответ

0 голосов
/ 08 ноября 2019

Модуль typing явно заявляет, что вы можете использовать ... вместо подписи, хотя тип возврата кажется обязательным.

Можно объявить тип возврата вызываемого безуказание сигнатуры вызова путем подстановки буквенного многоточия для списка аргументов в подсказке типа: Callable[..., ReturnType].

Callable[..., Any] будет эквивалентно запрошенной аннотации Callable.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...