python3 自定义类 sort
时间: 2023-09-01 22:01:51 浏览: 100
在Python 3中,我们可以自定义一个类来实现排序功能。为了实现排序,我们需要在类中定义一个特殊的方法 `__lt__`(表示“less than”,即小于),该方法用于比较类的实例之间的大小关系。
下面我给出一个示例:
```python
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
def __lt__(self, other):
return self.age < other.age
student1 = Student("Tom", 20)
student2 = Student("John", 19)
student3 = Student("Alice", 21)
students = [student1, student2, student3]
students.sort()
for student in students:
print(student.name, student.age)
```
在这个示例中,我们定义了一个名为 `Student` 的类,其中包含了学生的姓名和年龄两个属性。在 `__lt__` 方法中,我们通过比较学生的年龄来确定大小关系,如果一个学生的年龄小于另一个学生的年龄,则该方法返回 `True`,否则返回 `False`。这样,当我们调用 `sort` 方法对 `students` 列表进行排序时,Python 就会使用 `__lt__` 方法来确定学生之间的大小关系,并按照年龄从小到大的顺序进行排序。
运行以上代码,输出将会是:
```
John 19
Tom 20
Alice 21
```
这说明我们成功地使用自定义类实现了排序功能。当然,在实际应用中,我们可以根据需要定义更多的比较方法,如 `__gt__` (greater than,大于)、`__eq__` (equal,等于) 等,以实现不同的排序需求。
阅读全文