Реализовать функцию iteritems для моего пользовательского итератора? - PullRequest
6 голосов
/ 26 октября 2010

Цель следующей программы - изучить генераторы Python и реализацию итераторов, чтобы понять магические методы Python.

Я застрял в реализации функции iteritems().Кроме того, я хочу знать, иду ли я в правильном направлении, или я концептуально ошибаюсь в понимании методов магии питона.

1 Ответ

4 голосов
/ 26 октября 2010

iteritems должен возвращать последовательность пар (ключ, val) для словаря, поэтому я не думаю, что это подходит для вашего класса.Если вы создали потомок UserDict, то может быть случай переопределить его.

Если вы переопределяете iteritems, вы должны сделать это, указав пары ключ-значение.:

def iteritems(self):
    return iter([(x[0], x) for x in "alpha bravo charlie".split()])
...