Вопрос проверяет понимание протокола итерации и того, какие методы делают объект итерируемым или последовательностью.
Короткий ответ
Итерируемый объект должен реализовывать метод __iter__, который возвращает итератор. Итератор, в свою очередь, должен реализовывать методы __iter__ и __next__. Последовательности часто дополнительно реализуют __len__ и __getitem__, что позволяет итерироваться по ним даже без явного __iter__. Python может использовать __getitem__, начиная с индекса 0, пока не получит исключение IndexError.
Длинный ответ
Зарегистрироваться
Развернутый ответ доступен только зарегистрированным пользователям.