13

マシュマロの公式ドキュメントによると、次のように、スキーマを宣言してから、ロードされたデータを受け取る別のクラスを用意することをお勧めします。

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

    @post_load
    def make_user(self, data):
        return User(**data)

ただし、私のUserクラスは次のようになります。

class User:
    def __init__(name, email, created_at):
        self.name = name
        self.email = email
        self.created_at = created_at

これは不必要に繰り返しているように思えますが、属性名をあと 3 回書く必要があるのは本当に好きではありません。ただし、明確に定義された構造体に対する IDE オートコンプリートと静的型チェックは好きです。

別のクラスを定義せずに、マシュマロ スキーマに従ってシリアル化されたデータをロードするためのベスト プラクティスはありますか?

4

3 に答える 3