Ожидаемый тип «GenMmCorpus», вместо этого получил «Корпус» в реализации метода подкласса - PullRequest
0 голосов
/ 09 апреля 2020

У меня есть следующая иерархия классов в Python 3:

class Corpus(ABC):
    __metaclass__ = ABCMeta

    @staticmethod
    @abstractmethod
    def load(folder: str, **kwargs) -> 'Corpus':
        pass

class GenMmCorpus(Corpus):
    @staticmethod
    def load(self, folder: str, **kwargs) -> Corpus:
        ...
        return GenMmCorpus(corpus, dictionary, method, lemmatize, voc_size)

И я использую предыдущий код следующим образом:

corpus: GenMmCorpus = GenMmCorpus.load(folder)

Хотя этот код работает нормально, PyCharm дает мне следующий совет:

Expected type 'GenMmCorpus', got 'Corpus' instead in a subclass 

Кто-нибудь знает, как избежать этого предупреждения? Если я удаляю ввод 'GenMmCorpus', появляется другое предупреждение, когда я пытаюсь использовать указанные c методы GenMmCorpus, которых нет в базовом классе. Таким образом, решение не может быть удалено следующим образом:

corpus = GenMmCorpus.load(folder)
...