MyPy проверяет конфликт ввода с типизацией.SelfPython

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

Сообщение Anonymous »

Во время проверки и переписывания неизменяемого класса операции не проходят проверку mypy.
Класс реализует такие операции, как__add__, однако каждая функция, возвращающая новый экземпляр того же класса, вызывает ошибку ввода. Несовместимый тип возвращаемого значения (получено «Point», ожидается «Self») [return-value]mypy(error)
Методы, которые я пробовал:
  • T = TypeVar("T", bound="A") Поскольку параметр T был привязан к A, mypy распознал бы создание экземпляра A() как подкласс T
  • class A(Generic[T]) то же самое
  • return cast(T, A()) Это работает, но требует, чтобы приведения были разбросаны по всему коду.
  • Выше с ClassVar вместо Generic
Есть ли решение, которое не сильно полагается на cast()?
Минимально воспроизводимый пример
from typing import Self
class A():
def meth(self, other:Self) -> Self:
return A()


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

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

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

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

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

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

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