现在你想以若干类变量为参照,对类进行比较大小,使用operator.attrgetter
函数可以快速高效实现。attrgetter()
可传入一个或多个类变量。
from operator import attrgetter
class User:
def __init__(self, age):
self.age = age
def __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)