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

在类对象中实现列表追加与数量判断:艺术咖啡馆画布上限提醒功能开发求助

实现方案

核心逻辑

  • 设定最大可用画布阈值为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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 11:27:03