подсказка типа возвращаемого значения для контейнера базового типа - PullRequest
0 голосов
/ 28 февраля 2019

Я определяю AnimalBase для базового класса для животных.
А затем я определяю класс Cat, Dog, который наследует AnimalBase.
Как комментировать возвращаемое значение некоторых функций, которые возвращают список, включая кошек и собак.

from typing import TypeVar, List
from abc import ABC

class AnimalBase(ABC):
    pass


Animal = TypeVar("Animal", bound=AnimalBase)


class Cat(AnimalBase):
    pass


class Dog(AnimalBase):
    pass


def get_animals(cls) -> List[Animal]:
    return [Cat(), Dog()]

Я получил следующую ошибку.

t.py:21: error: List item 0 has incompatible type "Cat"; expected "Animal"
t.py:21: error: List item 1 has incompatible type "Dog"; expected "Animal"
...