Python 带pymongo的生成函数
我试图生成一个生成器函数,在每次调用时生成一个项,但是我一直得到相同的项。这是我的密码:Python 带pymongo的生成函数,python,mongodb,generator,pymongo,Python,Mongodb,Generator,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
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
首先,删除
返回,这是不必要的
您的问题不在于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
我觉得这段代码很好(尽管在本例中不需要将集合声明为全局集合,也不需要return语句)。也许您如何调用test()存在问题?我将四个项放入一个具有不同描述的集合中,运行test()返回一个包含四个不同项的迭代器。谢谢,这对我帮助很大。最初,我试图使用test()获取一个项。next()