Функция генератора с пимонго - PullRequest
0 голосов
/ 20 июля 2011

Я пытаюсь создать функцию генератора, которая выдает элемент при каждом вызове, но я продолжаю получать один и тот же элемент. Вот мой код:

  1 from pymongo import Connection
  2 
  3 connection = Connection()
  4 db = connection.store
  5 collection = db.products
  6 
  7 def test():
  8         global collection #using a global variable just for the test.
  9         items = collection.find()
  10        for item in items:
  11                 yield item['description']
  12        return

1 Ответ

1 голос
/ 20 июля 2011

Прежде всего, удалите return, это не обязательно.

Ваша проблема не в test(), а в том, как вы это называете. Не звоните test().

Сделайте что-то вроде:

for item in test():
    print item

И вы получите по одному предмету за раз. То, что это делает, в основном:

from exceptions import StopIteration
it = iter(test())

while True:
    try:
        item = it.next()
    except StopIteration:
        break
    print item
...