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

Python运行自定义ConjuntoDeInteiros类报conjunto属性不存在错误如何解决?

问题原因及修复方案

1 核心报错原因

Python中类的构造函数是双下划线包裹的__init__,你当前代码写的是单下划线的_init_,这个方法不会被默认当作构造函数执行,所以实例化ConjuntoDeInteiros对象时,没有执行到self.conjunto = [None] * storage_capacity这行代码,实例自然就没有conjunto属性,调用addElement访问self.conjunto时就抛出了属性不存在的错误。

2 其他潜在错误

  • 构造函数定义的第一个参数conjunto没有被使用,且你实例化对象时没有传这个参数,修正构造方法名称后会直接报参数缺失错误
  • union方法中你直接把当前对象的conjunto列表和另一个ConjuntoDeInteiros实例相加,列表不能直接和自定义类实例做加法运算,需要取另一个实例的conjunto属性再相加
  • 初始化时你给conjunto填充了指定容量的None元素,后续调用append加元素时,新增元素会接在这些None的后面,不符合“集合存储整数”的预期

3 修正后可运行代码

class ConjuntoDeInteiros:
    # 修正为双下划线__init__,去掉无用的conjunto入参
    def __init__(self, storage_capacity=100): 
        self.storage_capacity = storage_capacity
        # 初始化空列表,而非填充None的列表,避免后续append出现冗余None
        self.conjunto = []

    def addElement(self, intNumber): 
        # 可选:加容量判断避免超出存储上限
        if len(self.conjunto) < self.storage_capacity:
            self.conjunto.append(intNumber)
        else:
            print("超出存储容量,无法添加元素")

    def union(self, instanceOfConjuntoDeInteiros): 
        # 取另一个实例的conjunto属性再做列表相加
        return self.conjunto + instanceOfConjuntoDeInteiros.conjunto

if __name__ == '__main__':
    c1 = ConjuntoDeInteiros()
    c2 = ConjuntoDeInteiros()
    c1.addElement(10)
    c2.addElement(5)
    print(c1.union(c2)) # 输出 [10, 5]

内容的提问来源于stack exchange,提问作者Elisson G. M. Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 18:15:03