使用pymongo的生成器函数
我正在尝试创建一个生成器函数,每次调用时都能返回一个不同的项目,但我总是得到同一个项目。以下是我的代码:
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 个回答
2
首先,去掉 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