我希望能够以编程方式创建如下所示的 python 类:
class Foo(BaseModel):
bar: str = "baz"
以下几乎有效:
Foo = type("Foo", (BaseModel,), {"bar":"baz})
但不包括注释,Foo.__annotations__
在第一个示例中设置但在第二个示例中不设置。
有什么办法可以做到这一点吗?
我的动机是创建一个类装饰器,它创建一个带有修改类型注释的装饰类的克隆。注释必须在类创建期间(而不是事后)设置为 BaseModel 的元类将看到它们。