预期类型为“ GenMmCorpus”,但在方法的子类实现中获得了“ Corpus”

时间:2020-04-09 08:02:17

标签: python inheritance methods subclass abstract

我在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',当我尝试使用不在基类中的特定GenMmCorpus方法时,会出现另一个警告。因此,无法按以下方式将其删除:

corpus = GenMmCorpus.load(folder)

0 个答案:

没有答案