es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Object no tiene el atributo

Así que soy nuevo en Python y he estado atrapado durante muchas horas enfrentando un error al intentar ejecutar el siguiente código:

class ConjuntoDeInteiros:
    def __init__(self, conjunto, storagecapacity=100): #inicializa una lista y su longitud, el valor predeterminado es 100
        self.storagecapacity = storagecapacity
        self.conjunto = [None] * storagecapacity

    def addElement(self, intNumber): #agrega un elemento a la lista
        self.conjunto.append(intNumber)

    def union(self, instanceOfConjuntoDeInteiros): #devuelve la unión de una lista de instancia con otra lista de instancia
        return self.conjunto + instanceOfConjuntoDeInteiros.conjunto


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

error: Traceback (most recent call last):
File ““, line 15, in
File ““, line 7, in addElement
AttributeError: el objeto ‘ConjuntoDeInteiros’ no tiene un atributo ‘conjunto’

¿Qué estoy haciendo mal???

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que estás faltando el método __init__ en tu clase ConjuntoDeInteiros. El método __init__ se utiliza para inicializar la clase y sus atributos. En tu caso, necesitas inicializar el atributo conjunto con el parámetro storage_capacity.

    Puedes modificar tu código de la siguiente manera:

    class ConjuntoDeInteiros:
        def __init__(self, storage_capacity=100): #Inicializa una lista y su longitud, el valor por defecto es de 100
            self.storage_capacity = storage_capacity
            self.conjunto = [None] * storage_capacity
    
        def addElement(self, intNumber): #Agregar un elemento a la lista
            self.conjunto.append(intNumber)
    
        def union(self, instanceOfConjuntoDeInteiros): #Devuelve la unión de una lista de instancia con otra lista de instancia
            return self.conjunto + instanceOfConjuntoDeInteiros
    
    if __name__ == '__main__':
        c1 = ConjuntoDeInteiros()
        c2 = ConjuntoDeInteiros()
        c1.addElement(10)
        c2.addElement(5)
        c1.union(c2)
    

Comments are closed.