相关疑难解决方法(0)

使用棉花糖而不重复自己

根据官方的Marshmallow文档,建议声明一个Schema,然后有一个单独的类接收加载的数据,如下所示:

class UserSchema(Schema):
    name = fields.Str()
    email = fields.Email()
    created_at = fields.DateTime()

    @post_load
    def make_user(self, data):
        return User(**data)
Run Code Online (Sandbox Code Playgroud)

但是,我的User课程看起来像这样:

class User:
    def __init__(name, email, created_at):
        self.name = name
        self.email = email
        self.created_at = created_at
Run Code Online (Sandbox Code Playgroud)

这似乎不必要地重复我自己,我真的不喜欢不得不再写三次属性名称.但是,我确实喜欢IDE自动完成和静态类型检查明确定义的结构.

那么,有没有最佳实践根据Marshmallow模式加载序列化数据而不定义另一个类?

python dry marshmallow

11
推荐指数
2
解决办法
1070
查看次数

标签 统计

dry ×1

marshmallow ×1

python ×1