在棉花糖架构中以编程方式定义字段

2024-04-23 14:26:40 发布

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

假设我有这样一个模式:

class MySchema(Schema):

    field_1 = Float()
    field_2 = Float()
    ...
    field_42 = Float()

有没有办法以编程方式将这些字段添加到类中?

像这样的:

class MyClass(BaseClass):

    FIELDS = ('field_1', 'field_2',..., 'field_42')

    for field in FIELDS:
        setattr(?, field, Float())  # What do I replace this "?" with?

我看到过一些关于动态地向类实例添加属性的帖子,但是这是不同的,因为

  • 我不想修补实例,只想修补类
  • Marshmallow模式使用自定义元类

同样的问题也可能适用于其他模型定义库,比如ODM/ORM(uMongo/MongoEngine,SQL Alchemy,…)


Tags: 实例infieldfieldsforschema编程方式