标签: generator

"yield"关键字有什么作用?

yieldPython中关键字的用途是什么?它有什么作用?

例如,我试图理解这段代码1:

def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild  
Run Code Online (Sandbox Code Playgroud)

这是来电者:

result, candidates = [], [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
    candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
return result
Run Code Online (Sandbox Code Playgroud)

_get_child_candidates调用该方法时会发生什么?列表是否返回?单个元素?它又被召唤了吗?后续通话何时停止?


1.代码来自Jochen Schulz(jrschulz),他为度量空间创建了一个很棒的Python库.这是完整源代码的链接:模块mspace.

python iterator yield generator coroutine

9664
推荐指数
46
解决办法
212万
查看次数

Python的生成器和迭代器之间的区别

迭代器和生成器之间有什么区别?关于何时使用每种情况的一些示例会很有帮助.

python iterator generator

482
推荐指数
13
解决办法
13万
查看次数

生成器表达式与列表理解

什么时候应该使用生成器表达式?什么时候应该在Python中使用列表推导?

# Generator expression
(x*2 for x in range(256))

# List comprehension
[x*2 for x in range(256)]
Run Code Online (Sandbox Code Playgroud)

python list-comprehension generator

390
推荐指数
7
解决办法
13万
查看次数

Ruby on Rails生成模型字段:type - 字段的选项有哪些:type?

我正在尝试生成一个新模型并忘记引用另一个模型ID的语法.我自己查一下,但在我所有的Ruby on Rails文档链接中,我还没有弄清楚如何找到权威的来源.

$ rails g model Item name:string description:text(在这里reference:product或者references:product).但更好的问题是,未来我可以在哪里如何轻松地寻找这种愚蠢?

注意:我已经学到了很难的方法,如果我错误地输入其中一个选项并运行我的迁移,那么Ruby on Rails将完全搞砸我的数据库...并且rake db:rollback对这种搞砸是无能为力的.我确定我只是不理解某些东西,但在我做之前......返回的"详细"信息rails g model仍让我感到搔痒......

ruby-on-rails generator rails-activerecord

306
推荐指数
3
解决办法
19万
查看次数

278
推荐指数
6
解决办法
22万
查看次数

在Python中读取大文件的懒惰方法?

我有一个非常大的文件4GB,当我尝试阅读它时,我的电脑挂起.所以我想逐一阅读它并在处理完每件之后将处理过的零件存储到另一个文件中并阅读下一篇文章.

yield这些作品有什么方法吗?

我很想拥有一种懒惰的方法.

python file-io generator

266
推荐指数
8
解决办法
22万
查看次数

PHP的收益意味着什么?

我最近偶然发现了这段代码:

function xrange($min, $max) 
{
    for ($i = $min; $i <= $max; $i++) {
        yield $i;
    }
}
Run Code Online (Sandbox Code Playgroud)

我以前从未见过这个yield关键字.试着运行我得到的代码

解析错误:语法错误,第x行意外的T_VARIABLE

那么这个yield关键字是什么?它甚至是有效的PHP吗?如果是,我该如何使用它?

php generator yield-keyword php-5.5

214
推荐指数
6
解决办法
8万
查看次数

我可以在生成器中使用ES6的箭头函数语法吗?(箭头符号)

即我该如何表达:

function *(next) {}
Run Code Online (Sandbox Code Playgroud)

带箭头.我已经尝试了所有我能想到的组合,而且我找不到任何关于它的文档.

(目前使用节点v0.11.14)

javascript generator ecmascript-6 arrow-functions

209
推荐指数
5
解决办法
5万
查看次数

你有什么可以使用Python生成器函数?

我开始学习Python,我遇到了生成器函数,那些在它们中有yield语句的函数.我想知道这些函数真正擅长解决哪些类型的问题.

python generator

206
推荐指数
13
解决办法
8万
查看次数

了解Python中的生成器

我正在阅读Python食谱,目前我正在研究发电机.我发现很难理解我的头脑.

因为我来自Java背景,是否有Java等价物?这本书讲的是"制片人/消费者",但是当我听到我想到线程时.

什么是发电机,为什么要使用它?显然没有引用任何书籍(除非你能直接从书中找到一个体面的,简单的答案).也许有例子,如果你感觉很慷慨!

python generator

194
推荐指数
12
解决办法
12万
查看次数