class SortingQueue:
_queue = []
@property
def queue(self):
sorted(self._queue, key=attrgetter("votes"), reverse=True)
return self._queue
我有这段代码,但当我引用这个类中的queue时,得到的是一个未排序的版本。在函数工作之外对其进行排序。在这种情况下,您不能使用@property
有什么限制吗
我们需要这样做,因为我们要更改_queue
中的值,这些值将更改输出的排序顺序
Tags:
sorted()
返回一个新排序的列表,同时保持self._queue
不变。 为了使代码按预期的方式工作,应该调用方法.sort()
使用
sorted()
修复它的另一种方法是:编辑:在匆忙中我忽略了这是一个@财产的事实。我通常建议不要让属性更改“hidden attribute\u queue”。在这种情况下,我会这样做:
内置函数
sorted
排序不到位。它返回一个排序的列表self._queue.sort
将就地排序。根据需要,您可以对列表进行排序,也可以只放置return sorted(...)
相关问题 更多 >
编程相关推荐