Как правильно аннотировать возвращаемый тип функции sum_two
в следующем примере?
from typing import Any, TypeVar
T = TypeVar('T')
S = TypeVar('S')
def sum_two(first: T, second: S):
return first + second
Предполагая, что оператор __add__
правильно аннотирован для всех возможных аргументов, которые будут переданы этой функции, есть ли способ выразить возвращаемый тип как возвращаемый тип вызова __add__
для объектов типа T
и S
?
Я хотел бы избежать использования декоратора набора текста overload
для определения всех возможных случаев, поскольку их могут быть десятки.
typing.get_type_hints(func)['return']
должно работать. На самом деле, вы можете использовать его, Python отлично его запускает и добавляет правильную аннотацию, в чем можно убедиться, посмотрев на аннотацию вашей функцииsum_two
(на самом деле это не так, поскольку сама__add__
не имеет аннотации типа). Но, к сожалению,mypy
жалуется на «Неверный тип комментария или аннотации». - person Konrad Rudolph   schedule 30.01.2020