Согласно документации на ABCs, я должен просто добавить метод next
, чтобы иметь возможность подкласса collections.Iterator
. Таким образом, я использую следующий класс:Как подклассы collection.Iterator?
class DummyClass(collections.Iterator):
def next(self):
return 1
Однако я получаю сообщение об ошибке при попытке создать его экземпляр:
>>> x = DummyClass()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Can't instantiate abstract class DummyClass with abstract methods __next__
Я предполагаю, что я делаю что-то глупое, но Я не могу понять, что это. Может кто-нибудь пролить некоторый свет на это? Я мог бы добавить метод __next__
, но у меня сложилось впечатление, что это было только для классов C.
Как видно на [ideone] (http://ideone.com/6cxGR) – NullUserException
Это, должно быть, ошибка с Python 2.6.1 на Mac. –
Просто, чтобы уточнить мой последний комментарий, я * am * running python 2.x. Кажется, он был исправлен в версии после версии, которая поставляется с OS X. –