Python 3.x 是否可以基于计算的属性使Attrs类具有可比性?

Python 3.x 是否可以基于计算的属性使Attrs类具有可比性?,python-3.x,python-attrs,Python 3.x,Python Attrs,我正在用Python3.7为我的项目实现一个简单的负载平衡器 我使用队列.PriorityQueue来容纳一组预定义的工作线程。工人在队列中的顺序由他们的每一次装载定义,装载根据工人分配的作业数量进行评估。也就是说,有一个jobs属性,它是一个作业实例列表,加载是通过jobs的长度计算的 每次作业分配迭代,通过queue.get()检索负载最低(作业数最少)的工作人员,分配后,它将放回队列 下面是简化的代码片段 导入属性 从输入导入列表开始 从。作业导入作业 @属性(顺序=真) 班主任: 作业:

我正在用Python3.7为我的项目实现一个简单的负载平衡器

我使用
队列.PriorityQueue
来容纳一组预定义的工作线程。工人在队列中的顺序由他们的每一次装载定义,装载根据工人分配的作业数量进行评估。也就是说,有一个
jobs
属性,它是一个作业实例列表,加载是通过
jobs
的长度计算的

每次作业分配迭代,通过
queue.get()
检索负载最低(作业数最少)的工作人员,分配后,它将
放回队列

下面是简化的代码片段

导入属性
从输入导入列表开始
从。作业导入作业
@属性(顺序=真)
班主任:
作业:List[Job]=attr.ib(工厂=列表,顺序=False)
@财产
def加载(自身):#如何根据此属性使工人具有可比性?
返回len(self.jobs)
我知道,如果我自己添加这些dunder方法进行比较,我可以实现这一点,即
\uu ne\uuuu
\uu lt\uuuu
\uu le\uuuu
\uu gt\uuuuu
\uu ge\uuu

但我的问题是,是否有可能基于计算属性使
attrs
类具有可比性?
如果可能,如何实现这一点?

attrs
目前没有对属性的直接支持。我认为您最好的选择是离开
order=False
并使用
functools.total\u ordering