返回值类型提示,用于基本类型的容器

时间:2019-02-28 20:14:06

标签: python type-hinting typehints

我为动物的基类定义了AnimalBase。
然后定义继承了AnimalBase的Cat,Dog类。
如何注释某些返回包含猫和狗的列表的函数的返回值。

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"

0 个答案:

没有答案