Не нашел решение на ошибку AttributeError: 'list' object has no attribute

Во время написания другого кода, столкнулся с проблемой, что не могу заставить работать массив в функции. Решил написать более простой код, что бы понять в чем проблема. Сам решить ее я не смог.

class I():
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def run(self):
        print(self.x + self.y)

def run():
    # b = I(1, 2)
    # b.run()

    arr = []
    create_array(arr)

    draw_array(arr)

def create_array(array):
    array.append(I(1, 2))
    array.append(I(2, 3))
    array.append(I(3, 4))

def draw_array(array):
    for i in array:
        I.run(array)

run()

в ответе должно выводиться 3 5 7


Ответы (1 шт):

Автор решения: MarianD

У вас 2 ошибки, обе в одной команде. ;-)

В конце программы, в определении функции draw_array() вместо

I.run(array)

используйте

i.run()          # строчная буква i; в скобках нет параметра

Переменной цикла for является строчная буква i, а у метода .run() класса I нет параметров (кроме «скрытого» параметра self, представляющего ссылку на конкретный объект класса I).

→ Ссылка