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

创建Coffee类:定义__init__方法与咖啡冲泡模拟方法的技术需求

实现符合需求的Coffee类

我来帮你完成这个模拟咖啡冲泡的Coffee类,完全贴合你描述的业务逻辑,下面是完整的代码实现和细节解释:

完整代码

class Coffee: 
    def __init__(self): 
        # 水箱最大容量(冲泡后咖啡壶容量等于这个值)
        self.max_water_capacity = 20 
        # 当前水箱剩余水量
        self.watertank = 20 
        # 是否已安装滤纸(True=已装,False=未装)
        self.filter_installed = False 
        # 咖啡机开关状态(True=开启,False=关闭)
        self.machine_on = False 
        # 咖啡粉的量(大于0即满足"有咖啡粉"条件)
        self.coffee_powder_spoons = 4 
        # 咖啡壶是否为空(True=空,False=装有咖啡)
        self.pot_empty = True 
        # 咖啡壶清洁状态(True=清洁,False=未清洁)
        self.pot_clean = True 

    def brew_coffee(self):
        # 检查所有冲泡前置条件
        if not (self.watertank > 0 and 
                self.filter_installed and 
                self.coffee_powder_spoons > 0 and 
                self.pot_empty and 
                not self.machine_on):
            raise ValueError("无法冲泡咖啡:请确认水箱有水、已装滤纸、有咖啡粉、咖啡壶为空,且咖啡机处于关闭状态")
        
        # 执行冲泡流程,严格按照需求更新状态
        self.watertank = 0  # 清空水箱
        self.pot_empty = False  # 咖啡壶装满(容量等于原水箱最大容量)
        self.machine_on = True  # 咖啡机保持开启
        self.pot_clean = False  # 咖啡壶变为未清洁状态

        print("咖啡冲泡完成!")

代码细节说明

  • 语义化属性命名:我把原代码里的模糊属性名改成了更易懂的名称,比如用filter_installed替代filter,用machine_on替代on,后续维护时能一眼看懂每个属性的作用。
  • 前置条件校验:把所有冲泡要求的条件整合进一个逻辑判断里,只要有一项不满足就抛出明确的错误提示,方便排查问题。
  • 状态严格更新:完全按照需求执行状态变更:清空水箱、标记咖啡壶为非空(容量对应原水箱最大值)、开启咖啡机、标记咖啡壶未清洁。

使用示例

# 初始化咖啡机
my_machine = Coffee()

# 先满足前置条件:安装滤纸
my_machine.filter_installed = True

# 执行冲泡
my_machine.brew_coffee()
# 输出:咖啡冲泡完成!

# 查看冲泡后状态
print(f"水箱剩余水量: {my_machine.watertank}")  # 0
print(f"咖啡机状态: {'开启' if my_machine.machine_on else '关闭'}")  # 开启
print(f"咖啡壶是否清洁: {'是' if my_machine.pot_clean else '否'}")  # 否

内容的提问来源于stack exchange,提问作者Tahan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:41:27