我想在python中扩展一个通用类并在我的基类中重写其某些方法,下面的示例无法编译
class __SyncProductRepo(SyncStore[Product]): ...
如何扩展通用基类SyncStore
我正在venv环境下使用python 3.7
有关更多信息,请参见以下片段
我有一个像下面这样的通用类
class AsyncStore(Generic[I]): ...
其中[I]是可识别类别的孩子
class Identifiable(Generic[T]): ...
和[T]是可识别(get_id)方法的返回类型, 在AsyncStore中,确保类型I是可识别的子代,我将其包括在内
I = TypeVar('I', bound=Identifiable[Any])
这是我打算使用该代码的方式 product.py如下
class Product(BaseModel, Identifiable[str]):
def get_id(self) -> str:
return self._id
...
__ SyncproductRepo.py如下
class __SyncProductRepo(SyncStore[Product]): ...
我期望它应该编译并执行
class __SyncProductRepo(SyncStore[Product]): ...
这不会编译,并以
失败 TypeError: Parameters to generic types must be types. Got <module 'src.models.Product' ...
答案 0 :(得分:0)
由于@shmee的答案,我发现了问题所在。我导入了错误的产品而不是产品。谢谢