Ошибка сообщения mypy в общей функции при возвратеPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Ошибка сообщения mypy в общей функции при возврате

Сообщение Anonymous »

С помощью приведенного ниже кода

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

def incr[T: int | None](value: T) -> T:
if value is None:
return value
return value + 1

incr(None)
incr(1)
При запуске mypy возникает ошибка:

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

main.py:4: error: Incompatible return value type (got "int", expected "T")  [return-value] Found 1 error in 1 file (checked 1 source file)
Почему это происходит? Мне кажется, что строка возвращает правильный тип.
Примечание: цель такой аннотации типа состояла в том, чтобы показать, что функция возвращает None только тогда, когда в качестве входных данных задан None

Подробнее здесь: https://stackoverflow.com/questions/793 ... -statement
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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