Ваша ошибка в строке инициализации цикла
for k in 3:
вы не можете использовать ключевое слово in
для итерации, вам нужно выполнить итерацию по последовательности, которую вы можете сгенерировать с помощью range
>>>for k in range(3):
... print(k)
0
1
2
Редактировать
Я вижу, что получил несколько отрицательных голосов, поэтому я подумал, что попытаюсь прояснить некоторые вещи.
Прежде всего, вопрос ОП заключался в том, что онОбнаружена ошибка в строке кода, с тех пор код OPs был удален при редактировании.
Код что-то пошёл по этому пути
class MyClass:
def attribute(self):
pass
instances = [MyClass(), MyClass(), MyClass()]
for k in 3:
instances[k].attribute()
, и он получал эту ошибку TypeError: 'int' object is not iterable
.
За это я ответил (и ОП принял), что ошибка в том, что для использования for
и in
вам нужна последовательность.
Действительно, это более питонический (и более читаемый) вариант использования
for ins in instances:
ins.attribute()
или если необходимо отслеживать индекс текущего экземпляра для использования enumerate
, который при использовании вместе с итерируемым возвращает кортеж индекса и текущего объекта
for k, ins in enumerate(instances):
# k will be the current index, and ins will be the current instance.