以编程方式创建带有类型注释的 python 类

问题描述 投票:0回答:0

我希望能够以编程方式创建如下所示的 python 类:

class Foo(BaseModel):
    bar: str = "baz"

以下几乎有效:

Foo = type("Foo", (BaseModel,), {"bar":"baz})

但不包括注释,Foo.__annotations__在第一个示例中设置但在第二个示例中不设置。

有什么办法可以做到这一点吗?

我的动机是创建一个类装饰器,它创建一个带有修改类型注释的装饰类的克隆。注释必须在类创建期间(而不是事后)设置为 BaseModel 的元类将看到它们。

python metaprogramming typing
© www.soinside.com 2019 - 2024. All rights reserved.