TypeVar的泛型和该TypeV的迭代器(或其他泛型)

2024-04-24 17:15:27 发布

您现在位置:Python中文网/ 问答频道 /正文

如何为有界TypeVar和该TypeVar的迭代器创建泛型类?你知道吗

像这样:

Model = TypeVar('Model', bound=MODELS_BASE_CLASS)
RecordReaderType = TypeVar('RecordReaderType', Model, Iterator[Model])


class RecordReader(Generic[RecordReaderType]):
    def func(self) -> RecordReaderType:
        pass

mypy抛出一个错误:类型变量模型未绑定。你知道吗

关于MODELS\u BASE\u CLASS的更新:它是一个导入类,被广泛用作项目类的基础。像这样:

from lib import BaseClass


class FirstSubClass(BaseClass):
    pass


class SecondSubClass(BaseClass):
    pass

Model = TypeVar('Model', bound=BaseClass)

Tags: basemodelmodelsdefpassgenericclass泛型