|
|
1
399
数据类只是面向存储状态的常规类,而不是包含大量逻辑。每次创建一个主要由属性组成的类时,都会创建一个数据类。
什么
当您的数据类必须是可散列的时,这尤其有用;因为这需要
具有
同一个类修饰符还可以生成比较方法(
政治公众人物的灵感来自
如果你想看一些例子,我最近使用
如果要使用
|
|
|
2
207
概述这个问题已经解决了。然而,这个答案添加了一些实际的例子来帮助基本理解数据类。
以下是后一个短语的含义:
与普通类相比,您主要节省了键入样板代码的时间。 特征这是数据类特性的概述(TL;DR?请参阅下一节中的汇总表)。 你得到了什么以下是默认情况下从dataclasses获得的功能。 属性+表示+比较
通过将以下关键字自动设置为
您可以打开的内容
如果将相应的关键字设置为
顺序
现在实现了排序方法(重载运算符:
散列,可变
尽管对象可能是可变的(可能是不需要的),但还是实现了哈希。 可哈希,不可变
现在实现了哈希,不允许更改对象或指定属性。
总的来说,如果
另请参见原件 hashing logic table 还有更多细节。 你没有得到什么要获得以下功能,必须手动实现特殊方法: 打开包装
优化
对象大小现在减小:
在某些情况下,
有关插槽的更多信息,请参见 blog post . 汇总表
+ 这些方法不是自动生成的,需要在数据类中手动实现。
*
其他功能初始化后
遗产
转换 将数据类转换为元组或dict, recursively :
局限性
工具书类
|
|
|
3
5
这个
|
|
4
3
|