合理使用dataclass将会大大减轻开发中的负担,将我们从大量的重复劳动中解放出来,这既是dataclass的魅力,不过魅力的背后也总是有陷阱相伴,最后我想提几点注意事项:
dataclass通常情况下是unhashable的,因为默认生成的__hash__是None,所以不能用来做字典的key,如果有这种需求,那么应该指定你的数据类为frozen dataclass
小心当你定义了和dataclass生成的同名方法时会引发的问题
当使用可变类型(如list)时,应该考虑使用field的default_factory
数据类的属性都是公开的,如果你有属性只需要初始化时使用而不需要在其他时候被访问,请使用dataclasses.InitVar
只要避开这些陷阱,dataclass一定能成为提高生产力的利器。
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx