完成上述题目的三个类的定义后,分别对不同的三个类创建一个实例对象并封装再一个列表里面,对该列表的三个不同对象按照年龄从从大到小进行排序,并打印排序后的结果。(建议使用lambda表达式对对象列表进行排序)
时间: 2024-05-02 08:20:31 浏览: 60
多个对象列表排序
没问题,我可以完成你的要求。首先,我来定义三个类:Person、Student和Teacher。
```python
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
class Student(Person):
def __init__(self, name, age, grade):
super().__init__(name, age)
self.grade = grade
class Teacher(Person):
def __init__(self, name, age, course):
super().__init__(name, age)
self.course = course
```
接下来,我创建三个实例对象并封装在一个列表中,并按年龄从大到小排序:
```python
p1 = Person('张三', 25)
p2 = Student('李四', 20, '大一')
p3 = Teacher('王五', 30, '数学')
people = [p1, p2, p3]
sorted_people = sorted(people, key=lambda x: x.age, reverse=True)
for p in sorted_people:
print(p.name, p.age)
```
输出结果如下:
```
王五 30
张三 25
李四 20
```
希望我的回答可以满足你的要求。
阅读全文