ker*_*ane 10 python python-3.x python-dataclasses
我开始大量使用 python dataclasses 模块并发现它非常有用。我特别喜欢可以在每个字段上设置的标志,允许切换比较、初始化等。
然而,我经常发现,有一个领域我希望从班级的沉迷行为中省略。在某些情况下,使用 dict_factory 参数可能会实现这一点,但有时,某个字段会导致 asdict 函数在通过使用 dict_factory 省略该字段之前引发异常。
其他人可以建议一种干净的方法来做到这一点吗?添加到数据类模块中不是一个有用的附加标志吗?
您可以将自定义元数据添加到字段中,例如field(metadata={"include_in_dict":True})在 dict_factory 中,您可以在其他任何操作之前检查它,并在需要时跳过该字段。
if field_.metadata.get("include_in_dict", False):
continue
Run Code Online (Sandbox Code Playgroud)