Generic类型的工厂



我想大多数Python爱好者都知道,但为了提供一些上下文,键入模块提供了一种定义类型提示的机制,如下所示:

from typing import List
x = List[int]

在上面的代码中,x表示一个List,其项是整数。

在微服务的范围内,FastAPI库允许通过使用Pydantic库来定义端点参数类型。

from pydantic import BaseModel
class User(BaseModel):
id: int
name: str
friends: List[int] = []

我试图在不知道ML模型的输入格式的情况下为其生成一个端点。我的方法是提取is元数据,查看输入模式,并从中生成Pydantic类

我的问题是…

有没有一种方法可以通过编程获得像x引用的类型,这样我就可以实现一个基于一些输入生成它们的工厂?

您可以创建自己的泛型类:

from pydantic import GenericModel
from typing import Generic, TypeVar

F = TypeVar("F")

class User(GenericModel, Generic[F]):
id: int
name: str
friends: List[F]

最新更新