Найти - Пользователи
Полная версия: Использовать класс как итератор
Начало » Python для новичков » Использовать класс как итератор
1
Dmitry Smal
Всем привет!

Пытаюсь решить python - quiz (http://pyobject.ru/blog/2010/02/04/python-quiz/)

4ое задание на Классы предполагает, что нужно использовать класс как итератор.

Но у возникает ошибка: TypeError: ‘type’ object is not iterable

Вот код
class Reg(object):
inst = []
def __init__(self):
Reg.inst.append(self)
def __iter__(self):
for i in inst:
yield i

r1 = Reg()
r2 = Reg()

for r in Reg:
print(r)
декораторы @classmethod и @staticmethod не спасают. С old-style классами аналогично.

Подскажите можно ли как - то использовать сам класс как итератор ?
Андрей Светлов
Так ведь это на самом деле задание на метаклассы. Итератор тоже должен быть в этом самом метаклассе.
Dmitry Smal
Андрей Светлов
Так ведь это на самом деле задание на метаклассы. Итератор тоже должен быть в этом самом метаклассе.
Оо.. спасибо! буду разбираться
Isem
И у итератора должен быть реализован метод __next__, выбрасывающий исключение StopIteraion после исчерпания элементов.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB