Python 排序用户定义类的快速方法

Python 排序用户定义类的快速方法,python,class,sorting,Python,Class,Sorting,我在python中有一个类,其中一个实例变量是整数。现在,当我在一个列表中有一些,如果我调用该列表上的sort方法,我希望它们按整数实例变量排序。有没有一种方法可以快速/有效地做到这一点,或者我应该在我创建的类中定义所有的比较方法 from operator import attrgetter print sorted(your_objects, key=attrgetter('the name of your int')) 或: 您还可以使用lambda代替运算符。attrgetter:

我在python中有一个类,其中一个实例变量是整数。现在,当我在一个列表中有一些,如果我调用该列表上的sort方法,我希望它们按整数实例变量排序。有没有一种方法可以快速/有效地做到这一点,或者我应该在我创建的类中定义所有的比较方法

from operator import attrgetter

print sorted(your_objects, key=attrgetter('the name of your int'))
或:

您还可以使用
lambda
代替
运算符。attrgetter

your_list.sort(key=lambda L: L.your_int)
“…或者我应该定义我创建的类中的所有比较方法。”

您可以使用
functools
模块:

要实现部分自动化,请在类中定义“小于”和“等于”方法,然后使用total_ordering类装饰器生成其余方法。请参阅文档中提供的total_ordering示例,您不会出错


我认为这是一种更好的方法,而不是在您的代码中的每种情况下都提供
key=blah
,以便对类实例进行排序。

我个人更喜欢
lambda
your_list.sort(key=lambda L: L.your_int)