2
根據官方棉花糖文檔,建議申報模式,然後有一個接收加載數據的單獨的類,像這樣:使用棉花糖不重複自己
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
這似乎是不必要的重複自己,我真的不喜歡寫的屬性名稱三次。但是,我喜歡IDE自動完成和靜態類型檢查定義良好的結構。
那麼,是否有任何最佳實踐,根據棉花糖架構加載序列化數據,而不需要定義另一個類?
定義類'setattr'阻止我指定的驗證規則,這就是我最終打擾棉花糖的原因。我可以使用'collections.namedtuple',但是當嵌套模式涉及時,這看起來相當笨拙。 – Teyras
@Teyras對於這種情況,我想你必須重複這些字段。文檔明確地這樣做。 –