Унаследование от названного уровня вызывает «перегруженные подписи функции 1 и 2 перекрываются с несовместимыми типами вPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Унаследование от названного уровня вызывает «перегруженные подписи функции 1 и 2 перекрываются с несовместимыми типами в

Сообщение Anonymous »

Я думаю, что это ошибка в Mypy, но я не уверен: < /p>

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

from typing import overload, NamedTuple

class A(NamedTuple):
pass

class B(NamedTuple):
pass

@overload
def frobnicate(arg: A) -> A: ...

@overload
def frobnicate(arg: B) -> B: ...

def frobnicate(arg: A | B) -> A | B:
if isinstance(arg, A):
return A()
elif isinstance(arg, B):
return B()
else:
raise TypeError()
< /code>
Этот код заставляет Mypy излучать: < /p>
error: Overloaded function signatures 1 and 2 overlap with incompatible return types  [overload-overlap]
Играйте вместе с ним здесь: https://mypy-play.net/?mypy=latest&pyth ... 2c998e84a9
Унаследование от именования , а не от Tuple или dict или obj Поведение из-за чего-то, что я не рассмотрел? )-> A, поэтому я не могу просто использовать Typevar. Я не хотел делать минимальный пример здесь сбивает с толку.

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

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

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

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

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

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

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