Python 3.7 提供了dataclasses
具有预定义特殊功能的新功能。
从概述的角度来看,dataclasses
两者SimpleNamespace
都提供了很好的数据封装工具。
@dataclass
class MyData:
name:str
age: int
data_1 = MyData(name = 'JohnDoe' , age = 23)
data_2 = SimpleNamespace(name = 'JohnDoe' , age = 23)
很多时候我SimpleNamespace
只是用来包装数据并移动它。
我什至将其子类化以添加特殊功能:
from types import SimpleNamespace
class NewSimpleNameSpace(SimpleNamespace):
def __hash__(self):
return some_hashing_func(self.__dict__)
对于我的问题:
- 有人如何在 和 之间
SimpleNamespace
进行选择dataclasses
? - 为什么它们是必要的,当扩展
SimpleNamespace
? - 所有其他用例都
dataclasses
迎合什么?