gpt4 book ai didi

python - Django 中的 "generator object"是什么?

转载 作者:太空狗 更新时间:2023-10-30 01:39:40 24 4
gpt4 key购买 nike

我正在使用 Django 投票包,当我在 shell 中使用方法 get_top() 时,它返回类似 "generator object at 0x022f7AD0,我以前从未见过这样的东西,怎么办您访问它,它是什么?

我的代码:

v=Vote.objects.get_top(myModel, limit=10, reversed=False)
print v
<generator object at 0x022f7AD0>

注意:我认为 get_top 只会返回一个很好的 myModel 列表,我可以执行类似 v.name 等的操作

最佳答案

如果你想要一个列表,只需在你的生成器对象上调用 list() 即可。

Python 中的生成器对象类似于惰性列表。元素只会在您迭代它们时立即被评估。 (因此在其上调用列表会评估所有这些。)

例如你可以这样做:

>>> def f(x):
... print "yay!"
... return 2 * x
>>> g = (f(i) for i in xrange(3)) # generator comprehension syntax
>>> g
<generator object <genexpr> at 0x37b6c0>

>>> for j in g: print j
...
yay!
0
yay!
2
yay!
4

了解如何仅在迭代时对 f 求值。您可以在此处找到有关该主题的优秀 Material :http://www.dabeaz.com/generators/

关于python - Django 中的 "generator object"是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/776060/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com