マシュマロの公式ドキュメントによると、次のように、スキーマを宣言してから、ロードされたデータを受け取る別のクラスを用意することをお勧めします。
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 オートコンプリートと静的型チェックは好きです。
別のクラスを定義せずに、マシュマロ スキーマに従ってシリアル化されたデータをロードするためのベスト プラクティスはありますか?