Python类与列表特定场景应用:计算人物物品总价值
解决方案
1. 计算人物现有物品总价值
给person类新增方法,快速统计当前背包内所有物品的价值总和:
class item(): def __init__(self, name, value): self.name = name self.value = value class person(): def __init__(self, name, money): self.name = name self.money = money self.items = [] # 计算现有物品总价值 def get_total_items_value(self): return sum(item.value for item in self.items)
使用示例
sword = item("Sword", 10) bow = item("Bow", 15) flame = item("Flame", 20) player = person("", 50) player.items.append(sword) player.items.append(bow) # 输出现有物品总价值 print(player.get_total_items_value()) # 25
2. 实现指定物品的购买计算逻辑
新增buy_items方法,支持传入任意数量的物品,自动计算总价并完成购买逻辑:
class person(): def __init__(self, name, money): self.name = name self.money = money self.items = [] def get_total_items_value(self): return sum(item.value for item in self.items) # 购买指定物品(支持单个/多个) def buy_items(self, *items_to_buy): total_cost = sum(item.value for item in items_to_buy) if self.money >= total_cost: self.money -= total_cost self.items.extend(items_to_buy) print(f"购买成功!剩余金额: {self.money}") return True else: print(f"余额不足!需支付{total_cost},当前仅{self.money}") return False
使用示例
# 购买单个物品 player.buy_items(flame) # 输出:购买成功!剩余金额: 30 # 后续新增物品后直接购买 shield = item("Shield", 25) player.buy_items(shield) # 输出:购买成功!剩余金额: 5 # 查看当前所有物品总价值 print(player.get_total_items_value()) # 70
扩展说明
- 后续新增的
item实例,直接传入buy_items方法即可自动参与总价计算 *items_to_buy为可变参数,支持传入1个或多个物品,适配不同购买场景- 若仅需计算指定物品总价(不执行购买),可直接用
sum(item.value for item in [物品1, 物品2])
内容的提问来源于stack exchange,提问作者gavviegoo
相关产品推荐
相关产品推荐

