现在你想以若干类变量为参照,对类进行比较大小,使用operator.attrgetter函数可以快速高效实现。attrgetter()可传入一个或多个类变量。

    1. from operator import attrgetter
    2. class User:
    3. def __init__(self, age):
    4. self.age = age
    5. def __repr__(self):
    6. return f"User({self.age})"
    7. # 以User类变量age作参照对User示例排序
    8. users = [User(10), User(3), User(20)]
    9. sorted_users = sorted(users, key=attrgetter("age"))
    10. print(sorted_users) # [User(3), User(10), User(20)]
    11. # 输出users列表中最大值
    12. max_user = max(users, key=attrgetter("age"))
    13. print(max_user) # User(20)