如何扩展泛型类

2024-04-16 19:32:19 发布

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

我想在python中扩展一个泛型类,并在基类中重写它的一些方法,下面的示例不编译

   class __SyncProductRepo(SyncStore[Product]): ...

如何扩展通用基类SyncStore

我正在使用带有venv环境的python3.7

有关更多信息,请参阅以下代码片段

我有一个像下面这样的泛型类

   class AsyncStore(Generic[I]): ...

其中[I]是一个可识别类别的孩子

   class Identifiable(Generic[T]): ...

[T]是可识别(get\u id)方法的返回类型, 在AsyncStore中,为了确保类型I是可识别的子类型,我包含了以下内容

   I = TypeVar('I', bound=Identifiable[Any])

下面是我打算如何使用这些代码 产品.py具体如下

   class Product(BaseModel, Identifiable[str]):

    def get_id(self) -> str:
        return self._id
   ...

你知道吗__同步产品报告.py具体如下

   class __SyncProductRepo(SyncStore[Product]): ...

我的期望是这个应该编译并执行

   class __SyncProductRepo(SyncStore[Product]): ...

这不会编译,并且会失败

   TypeError: Parameters to generic types must be types. Got <module 'src.models.Product' ...


Tags: 方法代码id类型get产品product基类