我正在学习数据类,但我对sort_索引的用途及其实际工作方式感到困惑
我似乎找不到任何有价值的信息。官方Python文档没有提到它,这令人难以置信
以下是一个例子:
@dataclass(order=True)
class Person:
sort_index: int = field(init=False, repr=False)
name: str
age: int
weight: int = 190
def __post_init__(self):
self.sort_index = self.weight
那么,排序索引的目的是什么?它是用来干什么的?我什么时候用
再次感谢您抽出时间回答我的问题。我是Python新手
在
__post_init__
方法中设置sort_index
属性(或者实际上,任何与名称无关的标识符)似乎就是执行比较的值。比较方法有一个隐式设置(
__lt__
,__gt__
,如果不熟悉,请阅读dunder方法),首先使用__post_init__
方法中提供的属性,如果需要,使用其余属性进行解析类构造函数
第一个示例-属性
age
相等:第二个示例-
age
更大:更复杂的示例:
原因
foo
(weight
)对于这两个实例是相等的,因此在bar
(age
)上进行比较结论
比较可以是任意复杂的,标识符并不重要
我强烈推荐ArjanCodes的这本书。
除了视频,这里还有一个到example dataclass code的github链接(来自同一视频)
希望这有帮助——我自己刚刚了解了数据类
相关问题 更多 >
编程相关推荐