You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 06:25:17