在类对象中实现列表追加与数量判断:艺术咖啡馆画布上限提醒功能开发求助
实现方案
核心逻辑
- 设定最大可用画布阈值为3,所有已分配画布数据存在
Canvas类的公共列表中 - 每次分配新画布前先校验当前已用数量,达到阈值直接返回提示,不新增记录
- 优化原有类结构,避免无意义的继承关系,逻辑更清晰
primary_colors = ['蓝色','红色','黄色'] def show_available_colors(color_list): print('这些是你可以选择的颜色:') for color in color_list: print(color) show_available_colors(primary_colors) class Canvas: # 存储所有已使用画布的类属性 canvases = [] # 最大可用画布阈值 MAX_CANVAS = 3 @classmethod def add_canvas(cls, canvas_info): if len(cls.canvases) >= cls.MAX_CANVAS: print("无可用剩余画布") return False cls.canvases.append(canvas_info) return True class PainterOrder: def __init__(self, color, canvas_type): # 新增画布前先做阈值校验 add_success = Canvas.add_canvas(canvas_type) if add_success: print(f"你选择的颜色是{color},画布是{canvas_type}?我们马上为你准备!") # 测试场景 first_painter = PainterOrder(primary_colors[1], '白色画布') second_painter = PainterOrder(primary_colors[0], '亚麻画布') third_painter = PainterOrder(primary_colors[2], '迷你画布') # 第四个订单触发阈值提示 fourth_painter = PainterOrder(primary_colors[1], '定制画布')
调整说明
- 修正了原代码的缩进错误,优化了变量、类、函数命名,可读性更强
- 画布校验和新增逻辑统一封装在
Canvas类中,后续如果要修改阈值或者新增画布属性只需要调整该类即可 - 测试用例完全覆盖需求场景,运行后可以看到第四个订单不会新增到列表中,只会输出无可用画布的提示
内容的提问来源于stack exchange,提问作者Carlos Castanos
相关产品推荐
相关产品推荐

