在 pydantic 模型中包含非验证方法是不好的做法吗?
Is it bad practice to include non-validating methods in a pydantic model?
我正在使用 pydantic 1.3 来验证我正在写的 API 的模型。
在继承自 pydantic.BaseModel 的 class 中包含任意方法是 common/good 做法吗?
我需要一些与对象关联的辅助方法,我正在尝试决定是否需要“处理程序”class。这些模型正在转换为 json 并发送到我也在编写的 restful 服务。
我的模型是这样的:
class Foo(pydantic.BaseModel):
name: str
bar: int
baz: int
做这样的事情是不好的做法吗:
class Foo(pydantic.BaseModel):
name: str
bar: int
baz: int
def add_one(self):
self.bar += 1
这对我来说有些道理,但我找不到任何人这样做的例子。
提前谢谢你。
是的,很好。我们应该记录下来。
唯一的问题是当您有一个与方法冲突的字段名称时,但如果您知道您的数据是什么样子,那不是问题。此外,您的代码也可能过度面向对象,但您离那还有很长的路要走。
我正在使用 pydantic 1.3 来验证我正在写的 API 的模型。
在继承自 pydantic.BaseModel 的 class 中包含任意方法是 common/good 做法吗?
我需要一些与对象关联的辅助方法,我正在尝试决定是否需要“处理程序”class。这些模型正在转换为 json 并发送到我也在编写的 restful 服务。
我的模型是这样的:
class Foo(pydantic.BaseModel):
name: str
bar: int
baz: int
做这样的事情是不好的做法吗:
class Foo(pydantic.BaseModel):
name: str
bar: int
baz: int
def add_one(self):
self.bar += 1
这对我来说有些道理,但我找不到任何人这样做的例子。
提前谢谢你。
是的,很好。我们应该记录下来。
唯一的问题是当您有一个与方法冲突的字段名称时,但如果您知道您的数据是什么样子,那不是问题。此外,您的代码也可能过度面向对象,但您离那还有很长的路要走。