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

Python中继承list的自定义类调用append无法追加值如何解决?

原因分析
  • 你自定义的mylist类重写了父类list的append方法,但方法中仅实现了长度校验逻辑,没有调用父类的append方法执行实际的元素写入操作,因此调用append后不会有元素被添加到列表中
  • 现有长度校验逻辑存在逻辑漏洞:仅判断追加元素前列表长度已经超过最大值时才抛出异常,无法拦截「追加后长度超过阈值」的场景,不符合最大长度限制的预期
修复方案

修改append方法的逻辑,先校验长度,再调用父类方法完成元素追加:

class mylist(list):
    def __init__(self, max_length):
        super().__init__()
        self.max_length = max_length        

    def append(self, *args, **kwargs):
        """ Append object to the end of the list. """
        # 校验追加后长度是否超过阈值
        if len(self) >= self.max_length:
            raise Exception(f"已达到最大长度{self.max_length},无法追加元素")
        # 调用父类原生append方法完成元素追加
        super().append(*args, **kwargs)

a = mylist(5)
a.append(5)
print(a)
# 输出:[5]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 03:54:04