创建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
相关产品推荐
相关产品推荐

