error: Incompatible return value type (got "int", expected "T") [return-value]
error: Incompatible return value type (got "str", expected "T") [return-value]
См. также этот пример игровой площадки mypy.
Вопросы:
Можно ли это сделать и как?
Может ли это поддерживаться в Python 3.10?
Может ли входной аргумент rtype иметь значение по умолчанию, скажем, int?
Альтернативы:
Сайты вызова (их много) могут утверждать тип после вызова функции, но это слишком многословно:
def get_parameter(parameter: str, _rtype: type[T]) -> T: """Get the parameter""" if parameter.startswith("N"): return int(VALUES[parameter], 0) return VALUES[parameter] [/code] Это приводит к ошибке в Python 3.12 с mypy 1.18.2 в строках с возвратами: [code]error: Incompatible return value type (got "int", expected "T") [return-value] error: Incompatible return value type (got "str", expected "T") [return-value] [/code] См. также этот пример игровой площадки mypy. Вопросы: [list] [*]Можно ли это сделать и как? [*]Может ли это поддерживаться в Python 3.10? [*]Может ли входной аргумент rtype иметь значение по умолчанию, скажем, int? [/list] Альтернативы: [list] [*]Сайты вызова (их много) могут утверждать тип после вызова функции, но это слишком многословно: [code]name = get_parameter("NAME") assert isinstance(foo, str) [/code]