python - 使用 kwargs Python 传递参数但维护类型检查
问题描述
我在 Python 中有一个通用模式,它使用 kwargs 将对象的某些键传递给另一个函数,该函数采用带有一些添加/删除键的类似对象。一个例子是采用 DTO,对其进行转换并将其写入数据库。
class FooUpdateDTO:
foo: str
class FooModel:
foo: str
bar: str
def foo(dto: FooUpdateDTO):
model: FooModel = FooModel(bar="bar", **dto.dict())
self.update(model)
def update(model: FooModel):
# do things
pass
现在,如果模型发生如下变化,我想查看需要更新的类型错误FooUpdateDTO
。
class FooModel:
foo: int # <-- type changed
bar: str
但我没有。
无需手动写出参数即可完成这项工作的最佳方法是什么。
def foo(dto: FooUpdateDTO):
# model: FooModel = FooModel(bar="bar", **dto.dict()) # short and clean
model: FooModel = FooModel(bar="bar", foo=dto.foo) # long, verbose, and repetitive
self.update(model)
解决方案
推荐阅读
- linux - 按顺序打印结果
- python - 在 Anaconda 中执行 solr-to-es 时出错:ModuleNotFoundError: No module named 'solrSource'
- android - 我无法停止接收广播
- podcast - Podcast Validator 并提供音频文件
- angular - Angular Ionic3模板中的有条件关闭标签
- jenkins-pipeline - 如何在 Jenkins 管道中运行特定阶段
- javascript - 为什么我的财产观察者被调用了两次相同的“newValue”?
- c++ - cv::Mat.data 总是返回相同的值
- curl - 我如何使用 php curl 而不是 header('Location:) 返回令牌?
- selenium - 如何处理 Robot Framework 中的弹出式浏览器?