现在你想以若干类变量为参照,对类进行比较大小,使用operator.attrgetter函数可以快速高效实现。attrgetter()可传入一个或多个类变量。
from operator import attrgetterclass User:def __init__(self, age):self.age = agedef __repr__(self):return f"User({self.age})"# 以User类变量age作参照对User示例排序users = [User(10), User(3), User(20)]sorted_users = sorted(users, key=attrgetter("age"))print(sorted_users) # [User(3), User(10), User(20)]# 输出users列表中最大值max_user = max(users, key=attrgetter("age"))print(max_user) # User(20)
