Python如何打印多个类实例中health属性的最高值
你提供的示例代码存在笔误:__init__方法中self.health = first_name属于错误赋值,应该改为self.health = health,否则初始化实例时会直接报错。
实现方案
- 先修正类定义,再将所有需要统计的
villains类实例存入同一个列表 - 调用Python内置
max()函数,指定按实例的health属性对比即可拿到最高值
完整可运行代码
# 类名遵循Python大驼峰命名规范,你也可以保留原类名villains class Villains: def __init__(self, health, damage): self.health = health self.damage = damage # 初始化实例 v1 = Villains(20, 15) v2 = Villains(22, 12) v3 = Villains(18, 25) # 所有实例存入列表,后续新增实例只需追加到该列表即可 villain_list = [v1, v2, v3] # 方式1:仅获取最高的health数值 max_health = max(v.health for v in villain_list) print("最高health值:", max_health) # 方式2:获取health最高的实例对象,可同时读取该实例的其他属性 max_health_villain = max(villain_list, key=lambda item: item.health) print("最高health值:", max_health_villain.health) print("对应实例的damage值:", max_health_villain.damage)
内容的提问来源于stack exchange,提问作者reagent -52
相关产品推荐
相关产品推荐

