Возможно ли иметь декоратор, который добавляет аннотации типов к функции, чтобы средства проверки типов c типа mypy
могли обнаруживать нарушение?
В качестве простой попытки:
@returns(None)
def foo():
return 3
Должен быть эквивалентен:
def foo() -> None:
return 3
Однако mypy
не может обнаружить нарушение типа, если returns
определено как
def returns(type):
def inner(func):
func.__annotations__['return'] = type
return func
return inner